DDD - как моделировать агрегатный корень?

Используйте $pull для удаления данных

return this.mobiledashboardModel
.update({"_id": args.dashboardId}, { $pull: {"viewData": { "_id": widgetId}}})
.exec()
.then(dashboardDoc => {
     return {
        result: dashboardDoc
     }
});
0
задан p.magalhaes 23 February 2019 в 22:16
поделиться

1 ответ

Дочерний объект в агрегате не имеет своего собственного жизненного цикла, то есть объектный объект не может существовать сам по себе вне агрегата, но зависит от объекта корневого объекта. Дочерний объект имеет локальный уникальный идентификатор внутри агрегата, в то время как корневой объект имеет глобальный уникальный идентификатор.

Чтобы узнать, является ли сущность дочерней по отношению к совокупной корневой сущности, спросите себя: может ли сущность существовать без корневой сущности? Если он может существовать сам по себе, он не является дочерним, он является корнем другого агрегата, и вы должны ссылаться на него по идентификатору.

Так что я подозреваю, что Бренд тоже является совокупным корнем. Это правильно?

Да, Бренд существует сам по себе, без Продукта.

А как насчет категорий и продукта?

Ну, я думаю, что они принадлежат к разным агрегатам, поскольку я вижу категории как способ классификации продуктов, но продукт существует на его своя. Кроме того, продукт может относиться ко многим категориям. Таким образом, продукт не является дочерним по категории. И наоборот нет.

Категория и Бренд - это две совокупности.

Я сомневаюсь в продукте. Это может быть сущность ребенка Бренда. Это зависит от ваших бизнес-правил. Является ли продукт, принадлежащий бренду, независимым? Может ли оно существовать само по себе? Или не имеет смысла, что продукт существует без его бренда?

0
ответ дан marc_s 23 February 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: