У меня есть следующий сценарий DDD, сгруппированный в следующие агрегаты:
Пользователь,
Друзья (ассоциации пользователей),
Файл (для загрузки пользователем),
Галереи (группировка файлов),
Сообщения (общение пользователей),
Группы (пользователи могут создавать и другие участники могут присоединиться),
GroupMessages (сообщения, отправляемые всем членам группы),
GroupForums (участники группы могут обсуждать различные темы)
Вот где это сбивает с толку. Пользователь связан со всем, вплоть до GroupForums. Кажется нелогичным проходить через репозиторий пользователей для доступа к другим агрегатам, хотя с точки зрения каскадирования, если я удаляю пользователя, технически записи, связанные с пользователем, также должны исчезнуть.
Кажется, что я не должен добавлять все связи «один ко многим», которые существуют здесь, к пользовательскому объекту, поскольку гидратация из базы данных кажется нелепой, особенно если я попытаюсь вытащить каждую запись, связанную с пользователем. Какова рекомендуемая стратегия для организации ваших агрегатов и репозиториев, а также правильный способ работы с большим количеством отношений «один ко многим» для данной сущности?