В нашей системе имеется база данных, в которой много таблиц с большим количеством столбцов, в некоторых случаях более 300 столбцов. Давайте используем пример - автомобиль. У нас есть автомобильный стол, который содержит 300 колонн. Помимо идентификатора автомобиля, остальные столбцы содержат данные, относящиеся к автомобилю fx. размеры правого сиденья.Разработка и агрегация доменов
Вопрос в том, как мы сопоставляем эту таблицу с агрегатом DDD без загрузки всех столбцов?
DDD говорит, что хранилище загружает весь агрегат, но в большинстве случаев клиент хочет видеть небольшую часть агрегата. В агрегате автомобиля также будет множество методов расчета различных вещей, а в некоторых случаях данные должны загружаться из других таблиц.
Как мы реализуем этот способ DDD? Доменные службы?
Мы лаем неправильное дерево? Должны ли мы использовать CQRS?
Пожалуйста, не обращайте на него внимания; база данных беспорядок.
Я уже начал читать его :) – John
Если мы посмотрим на сторону записи, как вы, например, обрабатываете ChangeNumberOfBoltsCommand? Команда принимает идентификатор автомобиля и количество болтов. Но должен ли репозиторий загружать весь агрегат, чтобы обновить количество болтов?Ленивая загрузка, похоже, идет против «правил» DDD. – John
Это зависит, но, на мой взгляд, весь агрегат должен быть загружен. Я не использую ленивую нагрузку, потому что у нее возникают проблемы при разработке против домена. – Khh