Не потому, что у вас есть иерархия, вы должны определить агрегат.Агрегатная конструкция пригодится, если у вас есть инвариант для поддержки в иерархии.
В вашем примере, предположим, что вы хотите, чтобы у каждого поста в блоге был уникальный 'slug' (стиль Wordpress, так что заголовокпоявляется в URL).Только сущность «Блог» может применять этот инвариант.Аналогичным образом, в этом случае имеет смысл сделать его совокупным и добавить сообщение через сущность блога.
Другой пример: ваш сайт может быть общедоступным или частным.Это атрибут сущности сайта.Поэтому вы должны обязательно получить доступ к сообщению с использованием обхода из совокупного корня, которым будет сайт, поскольку только сайт может разрешить вам или нет доступ к базовым объектам.
Если вы сделаете сайт совокупным корнем, вы можете получить URL-адрес, подобный следующему:
http://site.com/myblog/apost
Ваш код должен сначала получить сущность сайта, из этой сущности он получает блог, а из сущности блога - выборкупост.Как вы будете извлекать дочерние объекты, зависит от вас.Эта модель не заставляет вас загружать все записи блога в память при получении сайта.Он просто заставляет вас получать блог с сайта и сообщения из блога.