IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Relation ternaire [MCD]


Sujet :

Schéma

  1. #1
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut Relation ternaire
    Bonjour,

    Je souhaite créer une relation ternaire mais je ne sais pas trop comment la modéliser.

    Mes 3 entités sont :

    {User}={user_id, ... }
    {Website}={website_id, ... }
    {Team}={team_id, ... }

    Et l'association est (créer).

    En faite un User peut créer 1 ou plusieurs sites, qui sont attaché à une team.
    Quand un utilisateur créé un site cela créé également une team.

    Sauf qu'en cherchant sur internet je n'ai jamais vu de relation de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {User}--0,N--(Créer)--1,1--{Website}
                   |
                  1,1
                   |
                {Team}
    Je vous remercie pour votre aide.

    Cordialement,

    KaNa.

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Kanaziwok,

    Citation Envoyé par Kanaziwok
    En faite un User peut créer 1 ou plusieurs sites, qui sont attaché à une team.
    Quand un utilisateur créé un site cela créé également une team.
    ==> précisions :
    1 user peut créer 0 ou plusieurs sites ;
    1 site est créé par 1 et 1 seul user ;
    1 "team" possède 1 ou plusieurs sites ;
    1 site est attaché à 1 et 1 seule "team".

    Est-ce bien cela ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Bonjour Kanaziwok,

    ==> précisions :
    1 user peut créer 0 ou plusieurs sites ;
    1 site est créé par 1 et 1 seul user ;
    1 "team" possède 1 ou plusieurs sites ;
    1 site est attaché à 1 et 1 seule "team".

    Est-ce bien cela ?

    Bonjour Richard,

    En faite pas tout à fait, c'est plutôt :
    1 user peut créer 0 ou plusieurs sites;
    1 site est créé par 1 et 1 seul user;
    1 team possède 1 et 1 seul site;
    1 site est attaché à 1 et 1 seule team;

    En gras, c'est la seule différence avec toi.

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Eh bien, la réponse est... dans ta réponse, non ?

    User
    - Id_User (PK)
    - Nom
    ...

    Site
    - Id_Site (PK)
    - Nom
    - Id_User
    ...

    Relations
    User ---(0,n)---[créer]---(1,1) Site ;

    Team ---(1,1)---[Possède]---(1,1) Site ;
    Ne serait-ce pas, plutôt :
    Team ---(0,1)---[Possède]---(1,1) Site
    ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Merci Richard_35,

    Je ne comprends pas ça :
    Team ---(1,1)---[Possède]---(1,1) Site ;
    Ne serait-ce pas, plutôt :
    Team ---(0,1)---[Possède]---(1,1) Site
    Pourquoi une Team possède 0 ou 1 Site ??

    Vu qu'il ne peut y avoir de site sans team et de team sans site

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Kanaziwok
    Pourquoi une Team possède 0 ou 1 Site ??
    ==> je me demandais si des team pourraient être créées, avec des attributs propres, "en attendant" d'avoir des sites attachés.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  7. #7
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    D'accord je crois avoir compris.

    En faite, l'user quand il va créer un site, cela va également générer une team. Je ne savais pas qu'il y avait une notion de "temps" dans la conception d'une base de donnée.

    En tout cas merci beaucoup pour ton aide Richard.

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Non, non, il n'y a pas de notion de temps, mais d'attributs propres.

    Donc, si la relation est :
    Team ---(1,1)---[Possède]---(1,1) Site
    alors, il ne semble pas necessaire de créer une entité team.

    Site
    - Id_Site (PK)
    - Nom
    - Id_User
    - Attribut1_Team
    - Attribut2_Team
    ...

    Ou alors, il faudrait que tu donnes des exemples de ce tu veux stocker au niveau de l'entité "team", et au niveau "site".
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Citation Envoyé par kanaziwok Voir le message
    Pourquoi une Team possède 0 ou 1 Site ??
    Vu qu'il ne peut y avoir de site sans team et de team sans site
    Il y a donc bien bijection et non pas injection, autrement dit quand on modélise, on respecte la finalité : si un team est un team et si un site sans team ça n’a pas de sens, la modélisation est bien :
    [Site]---1,1--()--1,1---[Team]
    et non pas
    [Site]---0,1--()--1,1---[Team]
    Et, le cas échéant, le jour où un site pourra comporter plus d'un team, on passera à :
    [Site]---1,N--()--1,1---[Team]
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  10. #10
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Kanaziwok et François,

    Citation Envoyé par Richard_35
    il faudrait que tu donnes des exemples de ce tu veux stocker au niveau de l'entité "team", et au niveau "site".
    ==> je pense que c'est nécessaire.

    L'entité "team", de par son nom, évoque une notion de groupe : groupe de quoi ?... développeurs, testeurs, etc... Dans ce cas, effectivement, la nature "team" n'est pas la même que la nature "site" : il peut donc être judicieux de prévoir deux entités.

    Donc, en final :

    User
    - Id_User (PK)
    - Nom
    ...

    Site
    - Id_Site (PK)
    - Nom
    - Id_User
    - Id_Team
    ...

    Team
    - Id_Team (PK)
    - Nom
    ...

    Relations
    User ---(0,n)---[créer]---(1,1) Site ;
    Team ---(1,1)---[Possède]---(1,1) Site.

    Il est à noter que, dans l'absolu, nous pouvons aussi bien stocker Id_Team dans Site que Id_Site dans Team... Team étant une "extension" de Site et inversement.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  11. #11
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Bonjour fsmrel et Rchard_35,

    Désolé de répondre si tard, mais j'ai eu une grosse période de partiel + projets pour mon école ...

    Bref, c'est fini bientôt le stage !

    En tout cas je vous remercie pour vos réponses qui sont d'une grande aide pour moi.

    Pour expliquer les choses simplement :

    - Une team est un groupe d'user, elle peut comporter de 1 à N membres, et dans le futur pourra peut être avoir plusieurs sites ( Un par jeu )

    - Un site, est comme son nom l'indique un site internet pour une team, il est associé à une seule et unique team et appartient à un seul et unique membre, celui qui l'a créé.

    - Un user, est un membre du site, celui-ci peut rejoindre des teams ( un par jeu), créer un et un seul site et donc une et une seule team ( peu être dans le futur plusieurs ).

    - Autre explication : Quand un user crée un site, ça créé automatiquement une team.

    Je propose donc cette solution :

    User --(0,N)--{CreerSite}--(1,1)-- Site
    User --(0,N)--{CreerTeam}--(1,1)-- Team
    User --(0,N)--{Rejoindreteam }--(1,N)-- Team

    Team --(1,N)--{Possede}--(1,1)-- Site

    Ce qui me donnerai :
    Clé primaire
    Clé étrangère

    users (user_id, user_name, ...)
    websites (website_id, website_name, user_id, team_id, ...)
    teams (team_id, team_name, user_id, ...)
    Rejoindreteam (user_id, team_id)

    Je sais pas si c'est la meilleur solution mais elle me parait pas trop mal

  12. #12
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Kanaziwok,

    3 choses :
    1. attention : tu mélanges process et modélisation. Dans la modélisation, il ne faut pas tenir compte de qui créé quoi ;
    2. c'est la première fois que tu établis une relation entre team et user. Donc :
      • 1 team comporte plusieurs users => OK ;
      • 1 même user peut-il être dans plusieurs teams différentes ?
    3. il y a une contradiction entre

    Citation Envoyé par Kanaziwok, post #3
    Bonjour Richard,

    En faite pas tout à fait, c'est plutôt :
    1 user peut créer 0 ou plusieurs sites;
    1 site est créé par 1 et 1 seul user;
    1 team possède 1 et 1 seul site;
    1 site est attaché à 1 et 1 seule team;

    En gras, c'est la seule différence avec toi.
    et
    Citation Envoyé par Kanaziwok, post #11
    Team --(1,N)--{Possede}--(1,1)-- Site
    ==> quelle est la bonne relation ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  13. #13
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    1. Citation Envoyé par Richard_35 Voir le message
      attention : tu mélanges process et modélisation. Dans la modélisation, il ne faut pas tenir compte de qui créé quoi ;
      Je note mais je dois avouer que je vois pas trop d'autre manière de penser ... ( tu dis ça par rapport à quoi ? )
    2. Citation Envoyé par Richard_35 Voir le message
      c'est la première fois que tu établis une relation entre team et user. Donc :
      • 1 team comporte plusieurs users => OK ;
      • 1 même user peut-il être dans plusieurs teams différentes ?
      • Tout à fait
      • Oui un même user peut être dans plusieurs teams différentes.

    3. Citation Envoyé par Richard_35 Voir le message
      il y a une contradiction ...==> quelle est la bonne relation ?
      Bien vu, j'avais oublié de préciser cette relation, la bonne est alors :
      Team --(1,N)--{Possede}--(1,1)-- Site
      En faite pour l'instant une team n'aura qu'un et un seul Site mais dans le futur surement qu'une team pourra avoir plusieurs site ( un par jeu ).

  14. #14
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Point 1 :
    Citation Envoyé par Kanaziwok, post #13
    Je note mais je dois avouer que je vois pas trop d'autre manière de penser ... ( tu dis ça par rapport à quoi ? )
    ==> eh bien, par exemple, entre autres, quand tu dis
    Citation Envoyé par Kanaziwok, post #11
    - Autre explication : Quand un user crée un site, ça créé automatiquement une team.
    ==> ce n'est pas cette phrase qui détermine les relations nécessaires à une bonne modélisation.


    Point 2 :
    Citation Envoyé par Kanaziwok, post #13
    Oui un même user peut être dans plusieurs teams différentes.
    ==> alors,
    Citation Envoyé par Kanaziwok, post #11
    Rejoindreteam (user_id, team_id)
    ==> est juste. Mais au lieu de "Rejoindreteam" (notion d'action) j'appellerais cette entité "Team_détail" ou quelque chose du genre, mais bon...


    Point 3 :
    ==> OK.
    Notes que "Team --(1,N)--{Possede}--(1,1)-- Site" est juste (modélisation) ; "Team --(1,N)--{Créé}--(1,1)-- Site" serait faux (processus).
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  15. #15
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Ok j'ai tout compris, merci Richard je corrige tout ça alors.

    Là je suis sur deux autres relations ternaires, donc je vais essayer de faire par moi même et vous demanderez surement de juger mon travail.

    Cdt.

  16. #16
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Pas de quoi.

    Je te suggère de passer ton fil en et d'ouvrir d'autre(s) discussion(s), si besoin, pour d'autre(s) interrogation(s).
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 26/11/2007, 16h43
  2. [DC] Relation ternaire
    Par Yann39 dans le forum Diagrammes de Classes
    Réponses: 19
    Dernier message: 21/11/2007, 12h09
  3. Question sur une relation ternaire dans un MCD
    Par sylsau dans le forum Schéma
    Réponses: 5
    Dernier message: 05/03/2006, 21h00
  4. Conception relation ternaire
    Par mezoo dans le forum Schéma
    Réponses: 7
    Dernier message: 12/01/2006, 19h21
  5. Relation ternaire
    Par le Daoud dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 24/11/2004, 21h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo