Для следующей модели анемичного домена:
stock: id, code, description, total_amount
- конкретный тип запаса, а total_amount
рассчитывается для ускоренного просмотра, показывающего оставшееся количество, stock_arrival: id, date, document_id
-событие поступления акций и ссылочный документ с деталями, используя document_id
по причинам бюрократии / истории, stock_arrival_line: stock_arrival_id, stock_id, quantity, unit_price
- строка, описывающая конкретное изменение запасов по прибытии, включая цены, stock_removal: id,...
-событие удаления запаса, stock_removal_line: stock_removal_id, stock_id
- строка, описывающая конкретное изменение запаса при событии удаления, - ... другие события изменения запаса ...
анемичноеМодель предметной области имеет следующие ограничения отношений:
stock_arrival_line:stock_id
ссылки stock:id
, stock_arrival_line:stock_arrival_id
ссылки stock:id
, stock_removal_line:stock_id
ссылки stock:id
, stock_removal_line:stock_removal_id
ссылки stock:id
,
Возможно, stock
и stock_arrival
/ stock_removal
должны быть агрегированными корнями, ..
Домен выше показывает, что существует отношение «многие ко многим» между stock
и stock_arrival
/ stock_removal
посредством таблиц сопоставления, иэто основная часть, которая касается меня.
Инварианты должны быть определены только для совокупного корня и его внутренних компонентов.Следовательно, в совокупности stock
необходимо хранить stock_arrival_line
/ stock_removal_line
, чтобы заполнить совокупность stock
.
Однако то же самое относится к корням совокупности stock_arrival
/ stock_removal
, что они должны содержать в себе stock_arrival_line
/ stock_removal_line
соответственно, чтобы эти совокупные корни о событиях были завершены.
Когда следуют DDD, где эти ...line
должны принадлежать?Должны ли они быть продублированы?Или, должно ли это быть смоделировано совершенно по-другому?
Отказ от ответственности для возможных близких избирателей: я закончил изучение информатики, и между данными и операциями был большой разрыв.Недавно я наткнулся на дизайн, управляемый доменом, и начал изучать его, и это совершенно другой подход, и я заблудился об этих отношениях «многие ко многим» и общих корнях.