我有这个设计:
产品有很多定价网格,网格有很多定价期
Product
Id
Name
Grids[]
Name
Periods[]
Price
Start
End
现在我有特别优惠,当卖家创建报价(例如-10%)时,他可以选择将其应用于产品甚至网格(例如他不想将报价应用于网格“www.apartnerwebsite.com”,但他更喜欢将它应用于网格“我的网站”。)
Offer
OfferId
OfferName
ProductIds[]
GridIds[] //??
但是我不能这样做,因为没有网格ID,我不能从根聚合中引用Leaf。
答案 0 :(得分:1)
在我看来,Grid是它自己的聚合根的竞争者。如果Grid构成Offer的一部分以及Product,那么将它作为聚合根对我来说是有意义的。产品与产品优惠将通过ID引用其网格。
正如我在评论中提到的,你不应该担心会有大量的小聚合。这实际上是一件好事,正如弗农在他的优秀文章中所记录的那样:http://dddcommunity.org/library/vernon_2011