Décidément, je n'aime pas la représentation Entity/Relationship !Seulement avec ce mcd, quand je regarde le mld généré, je retrouve l'identifiant de commande dans gift. Alors qu'un gift peut ne pas avoir fait l'objet d'une commande.
Normalement, en MCD merisien classique, tu devrais avoir ceci :
commande -1,n----concerner----0,1- gift
Et comme je l'explique dans mon blog, une telle association engendre une table associative. Il ne doit donc pas y avoir de clé étrangère référençant la commande dans gift.
Aïe ! fsmrel va sortir sa sulfateuse anti NULL !Je crois que je vais rester avec la généralisation et ajouter un attribut store dans l'entité action qui, dans certains cas sera null, dans d'autres indiquera l'origine et dans les cas restants la destination.
S'il est pertinent qu'un gift passe par différents états, il semble normal que l'entité type gift soit associée à une entité type référençant ces différents états.Déjà que mon collègue me fait presque une scène parce que je refuse de lui ajouter un attribut status dans l'entité gift
Maintenant, si l'état d'un gift peut être trouvé à tout moment par requête sans avoir besoin de l'enregistrer, c'est effectivement de la redondance qu'il vaut mieux éviter.
Il ne faut pas transiger avec la qualité des données. Surtout qu'il s'agit ici, si j'ai bien compris, du coeur du business : chaque gift enregistré a une certaine valeur pour l'entreprise et il semble que vous souhaitiez avoir une bonne traçabilité de la vie de chaque gift, que ce soit pour des statistiques ou peut-être pour justificatifs comptables ou fiscaux.Déjà que mon collègue me fait presque une scène parce que je refuse de lui ajouter un attribut status dans l'entité gift car cela ajoute de la redondance alors si je lui file un schéma avec toutes ces relations, je vous raconte pas le bordel .
À vous de voir quelle importance vous attachez à vos données mais il vaut mieux prendre le temps de bien faire maintenant plutôt que de se rendre compte qu'il y a des données incohérentes et inexploitables, engendrant des résultats faux une fois tout cela mis en production.
Bon courage !
Partager