Domain driven design ddd中的多对多关系

Domain driven design ddd中的多对多关系,domain-driven-design,Domain Driven Design,我有两个聚合根、发布者和活动: 1活动可以注册多个发布者 1个发布者可以分配给多个活动 这意味着MToM关系 所以在Publisher类中,我创建了 List<Campaign> _campaigns; List\u活动; 在竞选课上 List<Publisher> _publishers; 列出出版商; 我已经创建了包含列(id、publisherID、CampaignID)的表 但我听说应该避免使用MtoM,我该怎么做?上述描述是否正确?确实,你应该避免许

我有两个聚合根、发布者和活动:

  • 1活动可以注册多个发布者
  • 1个发布者可以分配给多个活动
这意味着MToM关系

所以在Publisher类中,我创建了

List<Campaign> _campaigns;
List\u活动;
在竞选课上

List<Publisher> _publishers;
列出出版商;
我已经创建了包含列(id、publisherID、CampaignID)的表


但我听说应该避免使用MtoM,我该怎么做?上述描述是否正确?

确实,你应该避免许多可能的关系,因为这种关系通常伴随着复杂性。一种方法是强制执行遍历方向。因此,在您的域中,如果最常见的操作是针对发布者及其活动,您可以论证双向关系仅在特殊情况下才需要,而在您的活动存储库中有一个方法,用于检索给定活动的所有发布者。然后您可以从您的活动类中删除发布者列表

List<Publisher> _publishers;
当然也可以反过来。

类似的问题: