Domain driven design 泛化和聚合、实体

Domain driven design 泛化和聚合、实体,domain-driven-design,Domain Driven Design,你好,我有两个实体,它们共享一些共同的属性,学习和教师,然后我考虑做一个推广 但我对如何在我的领域中表达这一点表示怀疑。 我应该将person表作为普通实体吗?还是作为根聚集物? 或者,您不需要将该个人实体和两个学生或教师实体表示为aggregate根吗 我怀疑如何在泛化的情况下对我的领域建模。 但具体地说,我怀疑我是否应该将我的person类作为aggregate根,实体之间的所有共同点都在person类中,这里有一些关于DDD的误解。聚合根不应直接引用其他聚合根。聚合根引用另一个根的唯一方

你好,我有两个实体,它们共享一些共同的属性,学习和教师,然后我考虑做一个推广

但我对如何在我的领域中表达这一点表示怀疑。 我应该将person表作为普通实体吗?还是作为根聚集物? 或者,您不需要将该个人实体和两个学生或教师实体表示为aggregate根吗

我怀疑如何在泛化的情况下对我的领域建模。
但具体地说,我怀疑我是否应该将我的person类作为aggregate根,实体之间的所有共同点都在person类中,这里有一些关于DDD的误解。聚合根不应直接引用其他聚合根。聚合根引用另一个根的唯一方法是使用它的ID。这里我不是说外键。请记住,每个聚合可以位于单独的数据库中。因此,强烈反对在聚合根之间共享属性


您应该做的第一件事是建立有界上下文。也许学生和老师来自两个不同的有界环境,或者他们应该被分为多个部分。请记住,在有限的上下文中复制数据是可以的。

哦,晚安,我所说的参考是id。我相信它们是在同一个上下文中:学生回答问卷,并参加教师的课堂。教师授课和应用测试我相信这只是一个背景,我的问题是如何建模,它会遵循一个通用的类图吗?个人实体,它会是一个聚合根吗?因为学生和教师有相似的数据,所以每个聚合根可以在自己的进程中运行,并且用不同的语言编写,所以如果你把它们看作聚合根,你就不可能有“老师”和“学生”之间的基类。同样,在有限的上下文中复制数据是可以的。那么,我可以在有限的上下文中复制数据,并在我的关系模型中保留我的泛化吗?“我不是说我的持久性,而是我的表的建模”那么你说的是读取数据?您读取数据的方式不应影响您的设计。你应该看看CQR。如果没有CQR,您无法考虑正确地进行DDD。