Многие ко многим отношения в DDD - PullRequest
1 голос
/ 05 февраля 2011

У меня есть два Агрегированных корня, Издатель и Кампания:

  • В одной кампании может быть зарегистрировано несколько издателей,
  • 1 издатель может назначить несколько кампаний.

это означает отношение MToM

поэтому в классе Publisher я создал

List<Campaign> _campaigns;

и в классе Кампании

List<Publisher> _publishers;

Я создал таблицу со столбцами (id, publisherID, CampaignID)

Но я слышал, что MtoM следует избегать, как я могу это сделать? Вышеизложенное изображение правильно?

1 Ответ

3 голосов
/ 07 февраля 2011

Это правда, что вам следует избегать отношений между многими из-за сложности, которая обычно следует за такими ассоциациями.Один из способов сделать это состоит в том, чтобы обеспечить направление обхода.Таким образом, если в вашем домене наиболее распространенные операции выполняются против издателя и его кампаний, вы можете утверждать, что двунаправленное отношение необходимо только в особых случаях, и вместо этого иметь метод в вашем хранилище кампании, который извлекает всех издателей для данной кампании.Затем вы можете удалить список издателей из класса вашей кампании

или, конечно, наоборот.

...