【发布时间】:2013-04-28 15:33:08
【问题描述】:
这些是我的实体和关系:
没有实体 A 就不能存在任何实体。当 A 被删除时,所有其他实体也将被删除。因此 A 是我的聚合根。
但我不确定
1.) B is also an aggregate root for entity C,D and E
2.) E is also an aggregate root for entity F
1.) C,D and E can not exist without B being created
2.) F can not exist without E being created
我现在是否有 3 个聚合根并因此创建 3 个存储库?
【问题讨论】:
-
在对领域进行建模时,AR 会自然出现。您在这里拥有的是关系数据库模式。有界上下文 (BC) 决定聚合开始和结束的位置。在不同的 BC 中具有相同名称但结构略有不同的实体也很常见,即产品实体实现可以从一个 BC 中的 (ID,Name) 到其他 BC 中具有大量细节的完整产品。在定义聚合及其根时要非常小心,域对象的错误建模是 DDD 最常见的缺陷。
标签: domain-driven-design aggregateroot