【问题标题】:A series of simple Aggregate Root questions (Domain Driven Design)一系列简单的聚合根问题(领域驱动设计)
【发布时间】:2010-05-17 09:49:35
【问题描述】:

我有几个(希望是)关于域驱动设计中聚合根的简单问题:

  1. 可以将聚合根作为另一个聚合根的属性吗?
  2. 是否可以在两个或多个聚合根中包含给定实体?

我的最后一个问题涉及更多。我有一个网站,其中包含一些真正属于“网站”聚合根的实体。它们是“新闻”、“产品”和“用户”。数据库中没有“网站”表,但“网站”似乎是这三个实体的良好聚合根。 这通常是如何实现的?

谢谢!

【问题讨论】:

    标签: domain-driven-design aggregate root


    【解决方案1】:

    您是否有任何跨越整个网站的一致性规则(关于多个新闻产品和用户)?如果不是,这些实体(新闻、产品、用户)是您聚合根的良好候选者。

    聚合根主要功能是提供一致性和事务语义边界。

    回答你的问题:

    1. 可以,只要这样就可以了 引用聚合根不是 在任何操作过程中修改 包含 AR。这是连接到 一致性边界: 跨越多个操作 不保证聚合 产生一致的结果,所以他们 应该避免

    2. 不,一个实体 (这不是 AR)可以是 只有一个聚合。

    【讨论】:

    • 感谢您的回答。考虑新闻、产品和用户,实际上用户似乎属于不同的聚合根,并且由于新闻和产品并不真正相关,它们是它们自己的聚合根。当我正在处理我的域时,您对 1 和 2 的回答也很有意义。
    猜你喜欢
    • 2011-04-26
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 2010-11-30
    • 2011-11-04
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多