2011-02-05 2 views
1

J'ai deux racines Aggregate, éditeur et Campagne:à plusieurs dans les ddd

  • 1 campagne peut avoir plusieurs éditeur enregistré,
  • 1 éditeur peut avoir attribué à la campagne multiple.

qui signifie MMD relation

donc en classe Publisher, j'ai créé

List<Campaign> _campaigns; 

et dans la classe de campagne

List<Publisher> _publishers; 

J'ai créé la table avec des colonnes (id, publisherID, CampaignID)

Mais je ont entendu que MtoM devrait être évitée, comment puis-je faire cela? Est-ce que la description ci-dessus est correcte?

+0

Question similaire: http://stackoverflow.com/questions/3932791/alternatives-to-many-to-many-relationships-with-cqrs –

Répondre

3

Il est vrai que vous devriez éviter les relations de type «many-to-may», en raison de la complexité qui suit généralement de telles associations. Une façon de le faire consiste à imposer une direction de traversée. Ainsi, dans votre domaine, si les opérations les plus courantes sont dirigées contre un éditeur et ses campagnes, vous pouvez argumenter que la relation bidirectionnelle n'est nécessaire que dans certains cas, et que votre référentiel contient une méthode qui récupère tous les éditeurs pour une campagne donnée. Ensuite, vous pouvez supprimer la liste des éditeurs de votre classe de campagne

Ou bien sûr l'inverse.