Я мог бы немного помочь понять мою модель предметной области и убедиться, что я правильно подхожу к дизайну.
У меня есть сводный корень, который называется Department.У объекта Department есть несколько дочерних типов значений, которые помогают определить бизнес-понятие «отдела».В моем пользовательском интерфейсе пользователи могут перечислять, создавать, редактировать и удалять объекты Department.
У меня есть еще один сводный корень Project.Проект имеет несколько дочерних типов значений, но также имеет отношение к Департаменту, поскольку каждый проект «принадлежит» департаменту.Проекты можно создавать, редактировать, удалять и т. Д., И это не влияет на отдел, тогда как удаление отдела также удаляет все принадлежащие ему проекты.
Мой пользовательский интерфейс отобразит список проектов на основе отделовтекущий пользователь авторизован для доступа.Они могут иметь доступ к нескольким отделам.При отображении как элемента списка, так и в деталях, мне нужно показать логотип Отдела вместе с Проектом.
Сначала я подумал, что Проект - это объединенный корень с простым свойством DepartmentID, которое можно использовать для«искать» отдел.Но теперь я начинаю думать, что у меня действительно только один сводный корень: Department.
Что вы думаете?
UPDATE
Iне знаю, является ли это ключом к обсуждению или что-то меняет, но после прочтения первой пары ответов мне пришла в голову следующая мысль:
У отдела, по-видимому, два контекста:
- Как автономный объект, который поддерживает модификацию.
- Как дочерний элемент проекта, в котором случай содержит данные только для чтения и никакого поведения.
Это заставляет меня думать, чтоУ меня должно быть два «объекта» в моей модели, совокупный корень для случая # 1 и тип значения для случая # 2.Я на правильном пути?