Во-первых, позвольте мне сказать, что я согласен с Полом, и вы должны принять его ответ в какой-то момент. Я бы сделал этот комментарий, но я могу лучше выразить свои мысли таким образом.
Вы задаете здесь два вопроса, и в каждом из них есть две общие липкие концепции.
Первый вопрос - это вопрос о том, куда направляется BonusProgram по отношению к Рекламодателю, если Рекламодатель является совокупным корнем. Это, безусловно, интересный вопрос, который зависит от вашего домена и вариантов использования. Это не зависит от того, является ли BP ценным объектом или сущностью, поскольку агрегаты обычно содержат оба. Задача агрегата состоит в том, чтобы упростить обход объектов для внешних (до корневого агрегата) объектов. Это достигается путем выбора одного корневого объекта, на который может ссылаться внешний объект, и только одного (для варианта использования). Это означает, что клиентский объект может иметь ссылку на Advertiser, но не BonusProgram. Рекламодатель будет хранить необходимые ссылки на БП, чтобы удовлетворить запрос объекта клиники.
Второй вопрос заключается в том, является ли BP объектом стоимости или сущностью. Опять же, ответ зависит от вашего домена. Вопрос, который нужно всегда задавать себе, заключается в том, заботитесь ли вы об идентичности объектов или нет. Если вам все равно, это объект стоимости; если вам все равно, это сущность. Классический случай объекта стоимости - Деньги - хотя вы, безусловно, заботитесь о нем, вам, как правило, не важно, какой доллар какой (один доллар так же прекрасен, как и другой)! В этом случае BonusProgram пахнет больше как сущность, и вам, вероятно, интересно узнать, например, какой BP действовал в прошлом месяце и каковы его результаты по сравнению с BP этого месяца.
Опять Павел говорит то же самое, и вы должны принять его ответ.
НТН,
Berryl