0

我有这个设计:

一个产品有多个定价网格,一个网格有多个定价周期

Product
 Id
 Name
 Grids[]
  Name
  Periods[]
   Price
   Start
   End

现在我有特别优惠,当卖家创建优惠(例如 -10%)时,他可以选择将其应用于产品甚至网格(例如,他不想将优惠应用于网格“www .apartnerwebsite.com”,但他更喜欢将其应用于网格“我的网站”)。

Offer
 OfferId
 OfferName
 ProductIds[]
 GridIds[] //??

但我不能这样做,因为没有网格 ID,我不能从根聚合中引用叶子。

4

1 回答 1

1

在我看来,Grid 是其自身聚合根的有力竞争者。如果 Grid 构成 Offer 和 Product 的一部分,那么将其设为聚合根对我来说是有意义的。Products & Offers 将通过 ID 引用他们的 Grid。

正如我在评论中提到的,你不应该害怕拥有大量的小聚合。这实际上是一件积极的事情,正如弗农在他的优秀文章中所记录的那样:http: //dddcommunity.org/library/vernon_2011

于 2012-07-10T09:07:34.557 回答