在许多应用程序中,我与用户和金融公司打交道(作为示例),并且长期以来我一直在努力根据领域驱动设计原则对两者之间的关系进行建模。
在我的系统中我可以执行以下操作:
我相信两者都是聚合根源......财务公司和用户。
如何建模两者之间的关系?是 FinanceCompany.Users 吗?还是用户.FinanceCompanies?两者都不是吗?或者我是否缺少一些关键 DDD 概念的知识?问题是,如果我选择一种方式而不是另一种方式,则代码从一个聚合根入口点更容易理解/更清晰,但从另一个聚合根入口点则不然。有时,在某些情况下,导航到财务公司并向其添加用户更有意义,而在其他情况下,导航到特定用户并向该用户添加财务公司更有意义。
有没有更好的方法来解决这个问题,也许通过存储库方法?是否有一些我没有理解或理解的关键概念?假设财务公司和用户之间的关系属于 2 个 AR 中的任何一个,这感觉并不正确。当我存储关系时,我必须将其存储在名为 FinanceCompanyUsers 或 UserFinanceCompanies 的表中,但它似乎仍然不清楚。
我是否有诸如 FinanceCompany.AddUser() 和 User.AddFinanceCompany() 之类的代码?或者对于这样的关系有一些完全不同的方法吗?