A propos des sondages. Voici une proposition de MCD :
L’entité-type POSSIBILITE permet de mettre en œuvre une structure pour les différentes possibilités de choix mis à la disposition de l’auteur du sondage : « Oui », « Moyen », « Génial », « Pas d’opinion », etc.
Concernant les votes : Je remplace « VOTER » par « NOTER », pour marquer la différence entre les modes d’appréciation d’un article (note ou choix).
L’entité-type SONDAGE_POSS permet de mettre en relation les sondages (entité-type SONDAGE) et les possibilités de choix (entité-type POSSIBILITE), au gré des auteurs des sondages.
L’association-type CHOISIR_POSS (entre les entités-types UTILISATEUR et SONDAGE_POSS) permet à un utilisateur de retenir un choix parmi les choix proposés par l'auteur d'un sondage.
Observations :
Entité-type SONDAGE_POSS : Il s’agit donc en réalité d’une association-type entre SONDAGE et POSSIBILITE mais que j’ai déguisée en entité-type afin que l’on puisse mettre en œuvre une relation (association-type CHOISIR_POSS) avec l’entité-type UTILISATEUR (bien noter la double identification relative !) Lors du passage au MLD, l’en-tête de la table SONDAGE_POSS comportera les deux attributs ArticleId et PossibiliteId, mais au niveau MCD, Power AMC n’en ayant manifestement pas conscience, il est nécessaire de décocher la case « Existence d’attribut » avant passage au MLD :
Power AMC ne proposant rien au sujet des CIF et autres DF, j’ai dessiné à la main une contrainte d’unicité, une dépendance fonctionnelle (DF) entre l’association-type CHOISIR_POSS et l’entité-type POSSIBILITE. Cette contrainte exprime le fait que pour un utilisateur et un article, il n’y a qu’un seul choix possible. En conséquence, il faut intervenir manuellement dans le MLD, à savoir expulser l’attribut PossibiliteId de la clé primaire de la table CHOISIR_POSS.
MLD :
Si un article peut être, soit noté soit faire l’objet d’un choix, mais pas les deux à la fois, prévoir un trigger d’exclusion entre les tables NOTER et SONDAGE_POSS (la valeur
x prise par l'attribut ArticleId ne pouvant pas en l'occurrence figurer simultanément dans les deux tables).
Quand le MCD sera au point, n’oubliez pas de joindre votre MLD.
Partager