Bonjour jocile,
Bon week-end aussi à vous, profitez-en pour bien charger les batteries...
Envoyé par
jocile
Ces concepts sont nouveaux, mais incroyablement passionnants.
Tant mieux ! pour approfondir, profitez-en pour vous plonger aussi dans l’ouvrage incontournable de Dominique Nanci (RIP) dont il a fait un cadeau fort précieux à developpez.com : Ingénierie des systèmes d'information - Merise deuxième génération.
Intéressez-vous en particulier au chapitre 7 consacré au MCD.
En passant : nous nommons de façon différente les entités-types, associations et attributs, mais pas de problème, vous comme escartefigue et moi-même savons interpréter. Nous pouvons tous conserver nos habitudes quand cela nous convient, mais à condition que les noms soient parlants...
En ce sens, pour éviter toute ambiguïté, votre entité-type demande_accord pourrait être renommée en demande_accordee. De même, l’entité-type demande_refus pourrait être renommée en demande_refusee.
Dans la partie du MCD que je vous ai proposée concernant les demandes de réservation, traînent des scories.
Ce que j’avais proposé :
Après aménagement :
En effet, il est évident que les attributs ReservationDateAccord et ReservationMotifRefus n’ont plus rien à faire dans l’entité-type DemandeReservation qui doit en être débarrassée.
Votre entité-type demande_reservation comporte un attribut validation. Quelle en est la finalité ?
A propos des dates :
— attribut date_debut (votre entité-type demande_reservation) : s’agit-il de la date à laquelle la demande a été faite par l’utilisateur ?
Dans mon MCD partiel, vous constaterez l’ajout d’une date de refus (attribut DateRefus).
Pour le moment, je vois ainsi les choses (je me sers de mon MCD) :
— Une demande d1 peut être en cours, auquel cas seule l’entité-type DemandeReservation est renseignée, les entités-types faibles DemandeOK et DemandeKO ne le sont pas. L’attribut DemandeReservationDate contient la date à laquelle la demande de réservation a été faite.
— La demande d1 a été accordée, auquel cas l’entité-type DemandeOK est elle aussi renseignée (attribut DateAccord).
— La demande d1 a essuyé un refus, auquel cas l’entité-type DemandeKO est elle aussi renseignée (attribut DateRefus).
Comme on n’est pas dans un univers quantique, la contrainte d’exclusion (X) entre les entités-types DemandeOK et DemandeKO est là pour signifier de façon formelle qu’une demande ne peut à la fois être accordée et refusée (au stade SQL, il y aura mise en oeuvre d’une assertion ou d’un trigger pour garantir cette exclusion).
— Cas de l’attribut date_fin (votre entité-type demande_reservation) : quelle en est la finalité ? En cas de demande accordée ou refusée, cet attribut apporte-t-il une information supplémentaire et nécessaire ? A défaut, le faire disparaître.
Accessoirement, quel est votre SGBD ?
Bonne reprise !
Partager