Я начинаю ловить идею модели предметной области, но есть одна вещь, которую я не вижу, как это реализуется в модели предметной области - сгруппированные данные. Наиболее очевидный пример - это различные отчеты с динамической группировкой столбцов или без нее и заданным пользователем порядком столбцов.
Я постараюсь привести конкретный пример. Представьте себе следующую модель домена:
Orders [1-to-many] Positions [1-to-many] Production items
Отображается как простой трехуровневый список.
Order 1
- Position 1
- Production item 1, length: 2.5, weight: 1.234
- Production item 2, length: 2.5, weight: 2.345
- Production item 3, length: 5, weight: 3.456
Затем идет требование изменить уровень положения путем добавления поля «длина» (только для отображения, сама сущность положения НЕ изменяется) из производственного объекта и группы по этому полю.
Order 1
- Position 1, length: 2.5
- Production item 1, length: 2.5, weight: 1.234
- Production item 2, length: 2.5, weight: 2.345
- Position 1, length: 5
- Production item 3, length: 5, weight: 3.456
И следующее требование - добавить еще одно поле SUMmed "вес" из уровня элемента производства на уровне позиции. Опять же, только на дисплее.
Order 1
- Position 1, length: 2.5, weight: 3.579
- Production item 1, length: 2.5, weight: 1.234
- Production item 2, length: 2.5, weight: 2.345
- Position 1, length: 5, weight: 3.456
- Production item 3, length: 5, weight: 3.456
Что мне нужно изменить, чтобы достичь этой «искусственной» модели?
Похоже, нужен какой-то объект составного значения в месте, где идет Позиции: все поля сущности Позиция + поле размера + поле веса. Я на правильном пути?