在 DDD 中,子实体可以引用 aggregateRoot

In DDD, can a child entity reference an aggregateRoot

在我的域中,我有一个名为 User 的 AggregateRoot 和一个名为 Register_Cedro_Services 的子实体。

子实体是从 SAGAS Orchestrator 更新的,SAGAS Orchestrator 在第三方公司管理我们的用户注册。该实体有从第三家公司返回的数据。

如果将我的根设置为引用子实体,有一天我的组织离开另一个实体,我将不得不更改我的代码和用户 table。在这种情况下,我不会打破 open/closed 原则?

所以,如果我将我的子实体设置为引用根,我就不会有这个问题。

如果我理解正确的话:你有一个用户聚合,从外观上看它有一个名为“Register_Cedro_Services”的命令(因为它是一个动词),然后它将向用户添加某种子记录总计的。这将由传奇触发。

但是,您对此建模的方式是聚合将保存子实体的引用键。这是非常不寻常的,我不推荐这样做。子实体应具有聚合的引用键。

另外,您似乎担心存储在子实体中的数据包含第三方提供的数据?如果你已经使用了你的反腐败层那么应该没有问题。

最后,我的印象是您正在尝试对您的解决方案进行未来验证。这真的是一个要求吗?在软件工程中,面向未来与过度工程高度相关,被视为一种不好的做法。