0
votes

Comment définir une relation globale une à plusieurs

J'ai deux agrégats blog et post avec une relation unique ( blog est associé à plusieurs post < / code>). Selon la conception dirigée sur le domaine des meilleures pratiques, je suis incertain si blog doit contenir une collection de POST Références: xxx

quand POST a également une référence d'identifiant indirecte via blogide : xxx

Si plus de contexte est requis pour répondre à la question s'il vous plaît faites le moi savoir .


0 commentaires

3 Réponses :


0
votes

DDD ne vous indique pas comment implémenter votre application, mais vous donne simplement des directives. Tenir une liste des "messages" dans une classe "blog" et une référence inverse logique est définitivement ok si vous ne pouvez pas faire autre chose, mais la chose la plus importante à comprendre est la manière dont un "utilisateur de blog" sera en mesure d'agir sur des postes.

Ainsi, n'hésitez pas à implémenter le modèle de domaine de votre manière préférée, mais le seul moyen d'ajouter des messages, Supprimer Post, etc., les commandes sont envoyées à l'entité "Blog", de sorte que ce soit le blog lui-même. vous accorder que les messages sont câblés correctement en fonction de votre implémentation


0 commentaires

1
votes

Dans le livre de Vaughn Vernon, implémentation de la conception axée sur le domaine, vous pouvez trouver un chapitre entier sur la définition de vos agrégats et des règles de pouce que vous pouvez appliquer.

L'un d'eux est d'essayer de garder vos agrégats aussi petits que possible. Dans votre cas, je choisirais éviter avoir une liste d'objets post-pots à l'intérieur votre objet de blog. Imaginez que votre objet blog a un attribut nom et vous voulez simplement le modifier: lorsque vous récupérerez cet objet de la base de données, s'il contient tous les messages, vous les récupérerez également, en faisant un Insister inutile pour le cas d'utilisation Vous travaillez et cela diminuera la performance.

d'un point de vue de conception, ce blog n'est probablement pas défini par son poste, de sorte que vous n'en avez pas besoin d'eux à l'intérieur. Un agrégat devrait être responsable de toutes ses règles invariantes (règles logiques commerciales) et non plus.

Mon conseil est de simplement le garder aussi simple que possible et de me concentrer toujours sur des principes solides.

bonne chance!


0 commentaires

0
votes

une règle pour les agrégats est que vous devez faire référence à un agrégat par son identifiant racine global, donc dans Blog agrégé, vous devez conserver une liste des identifiants de poste.


0 commentaires