Précédent   Forum du club des développeurs et IT Pro > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 17h11   #1
Kentin64
Candidat au titre de Membre du Club
 
Inscription : avril 2011
Messages : 61
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 61
Points : 12
Points : 12
Par défaut Est-il possible de réaliser une association ternaire dans un diagramme EER sous MySQL WorkBench ?

Bonjour à tous !

Alors, je suis en train de préparer ma base de données en réalisant un diagramme EER sous WorkBench. Et je me suis rendu compte qu'il était impossible de faire des associations ternaires.

La seule solution que j'ai trouvée est de faire une classe d'association, que je vais appeler CA1, entre la classe A et la classe B, puis une autre classe d'association, CA2, entre la classe CA1 et la classe C (un exemple est disponible en pièce jointe). Seulement, c'est vraiment pas représentatif d'une ternaire, et on s'y perd facilement.

Y aurait-il une solution à mon problème ?
Images attachées
Type de fichier : png exemple_ternaire_moche.png (42,1 Ko, 15 affichages)
Kentin64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 15h16   #2
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 13 659
Points : 25 562
Points : 25 562
Envoyer un message via MSN à CinePhil
Soit l'association ternaire suivante :
A -0,n----associer----0,n- B
C -0,n---------|

C'est équivalent à ce MCD :
A -0,n----associer_A----(1,1)- association -(1,1)----associer_B----0,n- B
C -0,n----associer_C----(1,1)--------|

Tu as donc 3 associations binaires avec identification relatives (Identifying relationship).

Façon MySQL Workbench, ça donne ce schéma E/R :
[IMG]file:///tmp/moz-screenshot.png[/IMG][IMG]file:///tmp/moz-screenshot-1.png[/IMG]
Dans la pratique, quand tu crées une association binaire de type n:m dans MySQL Workbench, ça crée automatiquement une table associative A_has_B et deux "relationships" vers A et B.
Tu changes le Mandatory des relationships pour tenir compte de la cardinalité mini à zéro puis tu ajoutes la troisième table C et tu l'associes avec une "1:n Identifying relationship" à A_has_B. Tu changes là aussi la Mandatory puis tu changes le nom de la table A_has_B en A_B_C.
Images attachées
Type de fichier : png asso_ternaire_workbench.png (12,4 Ko, 48 affichages)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 16h23   #3
Kentin64
Candidat au titre de Membre du Club
 
Inscription : avril 2011
Messages : 61
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 61
Points : 12
Points : 12
Merci beaucoup !
Effectivement ça marche bien mieux qu'avec deux classes d'association...

Encore merci, bye
Kentin64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h11.


 
 
 
 
Partenaires

Hébergement Web