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