在DDD中,可以在独立于AR的聚合实体上执行CRUD操作吗?

问题描述 投票:0回答:1

假设我有一个Product实体,该实体具有称为Brand的属性。品牌本身就是一个实体(不是价值对象,因为它必须单独保存和维护)。

我希望能够在单独的UI屏幕上创建,更新或删除品牌。然后,在创建或更新产品时,通过下拉列表分配正确的品牌。

以上两个实体中的哪个可以是一个聚合根(如果不是两个都可以)?如果一个应该是AR,另一个应该是一个从属实体,那么我该如何隔离另一个而对它们执行CRUD操作?

通常,如何模拟这种情况?

entity aggregate domain-driven-design crud aggregateroot
1个回答
0
投票

指定聚合根在很大程度上取决于要建模的域。如您的问题所述,“品牌本身就是一个实体”],并且您想要在单独的UI屏幕上编辑“ ...”“,并且还想要” ...执行CRUD操作隔离”]。这些有力的暗示表明,品牌本身与Product都是聚合根。

[品牌是另一种汇总产品的属性。推荐从一个引用另一个聚合的方法是通过标识符引用],而不是保留直接引用(出于其他原因,请参见answer以id引用聚合)。因此,您的产品可以在“品牌ID”字段中声明其品牌,该ID引用相应的品牌,从而可以单独编辑“产品”和“品牌”。尽管您的品牌编辑屏幕可能会添加新的品牌,但可以通过使用其唯一ID获取它们来编辑现有品牌。

© www.soinside.com 2019 - 2024. All rights reserved.