Bonsoir Jégé34,
Remarques préalables :
— Dans mon MCD précédent, j’ai omis d’identifier OPTION relativement à SONDAGE (on verra que cela servira à résoudre un problème de contrainte de chemin) ;
— En outre, la cardinalité portée par la patte connectant REPONSE et CLASSEMENT doit être 1,N. J'ai rafraîchi l'image.
Pour en venir au MLD :
Avez-vous procédé à la vérification de votre MCD ?
Outils > Modèle de données > Vérifier l’intégrité
Si la vérification a été satisfaite, vous devez arriver à produire un MLD tel que celui-ci (encore incomplet quant aux clés, OMS complétera de lui-même lors de la génération des clés étrangères) :
Suite à génération des clés étrangères, le MLD prend l'allure suivante :
OMS s’est planté, il a oublié dans le diagramme la clé étrangère qui est portée par la table SONDAGE et faisant référence à la table UTILISATEUR (contrairement à ce qu’annonce l’explorateur, qui arrive pour sa part à déclarer une clé étrangère caractéristique d’une association réflexive branchée sur la table SONDAGE, c’est du grand n’importe quoi...) Par ailleurs, il crée un attribut idSondage en trop pour les tables INSCRIT_S et INSCRIT_G..., j’en passe et des meilleures.
Note sur les contraintes de chemin :
On peut « naviguer » de SONDAGE à CLASSEMENT via deux chemins :
a) En passant par REPONSE,
b) En passant par OPTION.
En conséquence, OMS génère — à juste titre cette fois-ci ! — deux attributs idSondage pour la table CLASSEMENT. Mais dans notre cas, il n’ y a qu’un seul sondage impliqué, on supprimera donc un des deux attributs, ce qui résoudra le problème de la contrainte de chemin.
Il serait préférable de renommer les attributs inutilement préfixés par le nom de la table source.
Attention, « OPTION » est un mot réservé en SQL, il faut renommer la table OPTION (pour ma part, j’ai utilisé « CHOIX » comme nom, voyez le diagramme MWB).
Par ailleurs, il faudra demander à OMS de produire les triggers de mise à jour pour les insertions, modifications et suppressions.
Ceci fait, il faudra lui demander de vérifier l’intégrité du MLD :
Outils > Modèle de données > Vérifier l’intégrité
Quand il n’y aura plus d’erreurs, on pourra demander la génération de la structure SQL de la base de données :
Outils > Base de données > Génération
Puis il faudra demander la vérification de cette structure et ça n’est pas gagné....
Et pour finir, les bugs du MLD en engendrent d’autres lors de la production du code SQL qui devient inexploitable...
C’est le parcours du combattant...
Moralité : je passe à MySQL Workbench pour créer ex nihilo un MLD et le code SQL correspondant, sinon on y est encore pour quelques jours...(A cette occasion e vous renvoie à l’article dont je me suis fendu qui est un mode d’emploi...)
L’organisation des objets dans le plan diffère, mais MWB refuse qu’on l’aide à « tirer » les liens entre tables, il faut donc ruser...
A votre tour...
Partager