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 :

Association entre hiérarchie et relation n:n


Sujet :

Schéma

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut Association entre hiérarchie et relation n:n
    Bonjour,

    J'ai une hiérarchie de la forme Rubrique (0,n) --- (1,1) Sous-rubrique.
    Je dois associer cette hiérarchie à une relation (n,n) : Compte (0,n) --- (0,n) Groupe
    Je ne sais pas si je dois les relier par une association ou une entité sachant qu'il y a l'attribut Libellé obligatoire

    pour obtenir ce tableau avec les possibilités suivantes :
    Compte | Groupe | Libellé | Rubrique | Sous-rubrique
    C1 | G1 | Lib1 | R1 | SR1
    C1 | G2 | Lib2 | R1 | SR1
    C1 | G2 | Lib3 | R2 | null
    C1 | G2 | Lib4 | R3 | null
    C2 | null | Lib5 | null | null

    Merci d'avance pour votre aide,
    sab

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 086
    Points : 38 380
    Points
    38 380
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    - Est-ce qu'une sous-rubrique peut elle même être composée de sous-rubrique, comme une structure composant/composé ?
    - Quelles sont les relations entre groupe et rubriques (cardinalités)
    - D'où vient le libellé ? dans votre exemple, il ne correspond ni au compte, ni au groupe, ni à la rubrique, ni à la sous-rubrique

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    - Est-ce qu'une sous-rubrique peut elle même être composée de sous-rubrique, comme une structure composant/composé ?
    - Quelles sont les relations entre groupe et rubriques (cardinalités)
    - D'où vient le libellé ? dans votre exemple, il ne correspond ni au compte, ni au groupe, ni à la rubrique, ni à la sous-rubrique
    1) Non le niveau le plus bas est la sous-rubrique
    2) Il n'y a pas de relation actuellement entre groupe et rubriques mais je souhaite en créer une avec le couple Compte-Groupe sachant que le groupe peut être null. La relation serait de type 0,n-0,n (cf. tableau exemple)
    3) Le libellé correspond au texte de l'association créée.

    Au final, je souhaites que la table "Association" fasse le lien entre Compte-groupe et Rubrique-Sous-Rubrique ou Rubrique avec un champ "Libellé" comme qualificatif.

    J'espère être plus clair.

    Merci.
    sab

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Bonsoir,

    Non pas plus clair...

    Quelles sont les règles de gestion ?
    Exemple : (à corriger)
    • 1 compte est associé à 0, 1 ou plusieurs groupes
    • 1 rubrique est associée à 0, 1 ou plusieurs sous-rubriques

    Du même style, quels sont les relations entre compte et rubrique, ou compte et sous-rubrique ?
    Que représentent une association compte/groupe et une association rubrique/sous-rubrique ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Bonjour sab6,

    Citation Envoyé par sab6 Voir le message
    2) Il n'y a pas de relation actuellement entre groupe et rubriques mais je souhaite en créer une avec le couple Compte-Groupe [...] La relation serait de type 0,n-0,n (cf. tableau exemple)
    3) Le libellé correspond au texte de l'association créée.

    Au final, je souhaites que la table "Association" fasse le lien entre Compte-groupe et Rubrique-Sous-Rubrique ou Rubrique avec un champ "Libellé" comme qualificatif.
    Avec Rubrique / Sous-rubrique, ce n'est pas possible car l'association entre Rubrique et Sous-rubrique est simple lien référentiel (une Contrainte d'Intégrité Fonctionnelle ou CIF). Ce sera donc une association avec Rubrique.

    Pour rendre les choses plus claires, nommons "A1" l'association entre Compte et Groupe.
    Tu veux donc associer A1 avec Rubrique. Merise avancé le permet. Nommons cette nouvelle association "A2".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [ Compte ]
        |
       0,n
        |
        |
      ( A1 )--0,n----( A2 )----0,n--[ Rubrique ]<-0,n----( )----1,1--[ Sous-rubrique ]
        |
        |
       0,n
        |
    [ Groupe ]
    Dérivation de ce MCD en modèle relationnel :

    Compte (id_compte, ...)
    Groupe (id_groupe, ...)
    Rubrique (id_rubrique, ...)
    A1 (id_compte, id_groupe)
    A2 (id_compte, id_groupe, id_rubrique, libellé)


    Citation Envoyé par sab6 Voir le message
    sachant que le groupe peut être null.
    Certainement pas. Une occurrence de A1 associe une occurrence de Compte existante avec une occurrence de Groupe existante. Null n'est en aucun cas une occurrence de quelque entité que ce soit.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonjour JPhi33 et sohiermdp,

    Merci pour vos réponses.

    Effectivement, mon schéma actuel ressemble beaucoup à celui de JPhi33.
    Mais je me pose des questions.

    Si je reprends le MCD :
    [ Compte ]
    |
    0,n
    |
    |
    ( A1 )--0,n----( A2 )----0,n--[ Rubrique ]<-0,n----( )----1,1--[ Sous-rubrique ]
    |
    |
    0,n
    |
    [ Groupe ]

    (A2) n'est pas relié à sous-rubrique. Comment saurais-je quelle est la sous-rubrique associée ? car une même rubrique peut avoir avoir plusieurs sous-rubrique.

    Quand je dis que le groupe est null, c'est parce que tous les comptes ne sont pas reliés à un Groupe. Mon association (A2) doit pouvoir donc ne référencer que un compte sans un groupe. La valeur sera alors null.

    Pour simplifier le MCD, je pensais remplacer l'association (A2) avec une table [A2]. Qu'en pensez-vous ?
    Comment faire la relation avec Compte et groupe ?
    sab

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 086
    Points : 38 380
    Points
    38 380
    Billets dans le blog
    9
    Par défaut
    Comme mentionné précédemment, vous ne pouvez pas créer d'occurrence dans la table issue de l'association A1 dont tout ou partie de l'identifiant serait nul (il faut en ce cas transformer l'association en entité-type)
    Par contre, vous pouvez éventuellement créer un groupe "défaut" pour les cas de comptes sans groupe, ces comptes seraient liés à ce groupe "défaut".

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    En fait l'association A1 ne référence pas tous les comptes.
    Que pensez-vous du MCD ci-dessous ?

    Nom : Capture.PNG
Affichages : 467
Taille : 12,4 Ko
    sab

  9. #9
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Bonjour sab6,

    Citation Envoyé par sab6 Voir le message
    (A2) n'est pas relié à sous-rubrique. Comment saurais-je quelle est la sous-rubrique associée ? car une même rubrique peut avoir avoir plusieurs sous-rubrique.
    L'association A2 n'est pas reliée à Sous-rubrique car tu as dit toi même que l'association A1 doit être liée soit à Rubrique, soit à l'association Rubrique - Sous-rubrique (ce qui est impossible comme je l'ai déjà expliqué). Si A2 doit lier A1 à Sous-rubrique, ça ne pose aucun problème. D'autant qu'à partir d'une sous-rubrique, on retrouve la rubrique à laquelle elle est rattachée.

    Citation Envoyé par sab6 Voir le message
    Quand je dis que le groupe est null, c'est parce que tous les comptes ne sont pas reliés à un Groupe. Mon association (A2) doit pouvoir donc ne référencer que un compte sans un groupe. La valeur sera alors null.
    Voilà qui change les données du problème ! Il faudrait revenir au besoin initial et que tu l'expliques de manière "fonctionnelle", plutôt que de partir du résultat sous forme de tableau avec des valeurs Null ; valeurs qui, au passage, hérissent le poil de tout concepteur de base de données. Que représente ce libellé du point vue des comptes, groupes, rubriques et sous-rubriques ?


    Citation Envoyé par sab6 Voir le message
    Pour simplifier le MCD, je pensais remplacer l'association (A2) avec une table [A2]. Qu'en pensez-vous ?
    Attention à ne pas tout mélanger ! Dans un MCD, on parle d'entités et d'associations. Lorsqu'on dérive le MCD en modèle tabulaire (MLD ou modèle relationnel), on parle alors de tables, lesquelles sont issues des entités et des associations n - n (pour simplifier). Remplacer l'association par une table n'a pas de sens au niveau du MCD. De plus, s'agissant d'une association 0,n - 0,n, elle sera, de toute façon, dérivée en table au niveau tabulaire.


    Concernant ton dernier MCD, il est tellement différent du premier (qui est à peu près identique à celui que j'ai proposé) qu'il faut vraiment expliquer ce qu'est le libellé et à quoi il sert pour qu'on puisse te dire quelle modélisation convient.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  10. #10
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 086
    Points : 38 380
    Points
    38 380
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par JPhi33 Voir le message
    Concernant ton dernier MCD, il est tellement différent du premier (qui est à peu près identique à celui que j'ai proposé) qu'il faut vraiment expliquer ce qu'est le libellé et à quoi il sert pour qu'on puisse te dire quelle modélisation convient.
    Tout à fait d'accord, de plus, l'entité-type "Lien" semble fictive et ne correspondre à aucun objet ni acteur du modèle conceptuel.
    Un libellé seul ne saurait avoir une existence propre

    Revenez aux fondamentaux en écrivant sous forme littérale les règles de gestion, le MCD viendra ensuite

  11. #11
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Je suis un peu perdu...

    Pour répondre à vos questions, je vais essayé de vous expliquer fonctionnellement mon besoin.
    J'ai actuellement une bdd existante.
    Dans cette base, il y a une table Compte, une table Groupe et une table Compte_groupe. Mais, tous les comptes ne sont pas référencés dans la table Compte_groupe. Il y a également dans cette base deux autres tables Rubriques et Sous-rubriques. Une rubrique est composée de 0 à n sous-rubriques et une sous-rubrique référence une rubrique.
    Ces tables représentent deux "référentiels" distincts.
    Mon besoin consiste à proposer une ihm à un utilisateur pour qu'il fasse un lien entre ces deux référentiels (compte-groupe et rubrique-sous-rubrique) et qu'il nomme ce lien avec un libellé. Ce lien doit être stocké en bdd. J'essaye donc de réaliser le MCD correspondant à ce besoin.
    Pour simplifier actuellement j'ai :

    Nom : Capture2.PNG
Affichages : 371
Taille : 6,0 Ko

    et je souhaite faire le lien entre les deux "référentiels" et le stocker.

    N'hésitez pas à me dire si je ne suis pas clair.

    Merci d'avance pour votre aide,
    sab

  12. #12
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Bonjour sab6,

    Du côté Rubrique/Sous-rubrique, faire le lien avec une Sous-rubrique est suffisant. En effet, avec la Sous-rubrique on obtient la Rubrique qu'elle référence.


    Citation Envoyé par sab6 Voir le message
    Mon besoin consiste à proposer une ihm à un utilisateur pour qu'il fasse un lien entre ces deux référentiels (compte-groupe et rubrique-sous-rubrique) et qu'il nomme ce lien avec un libellé.
    Une demande des utilisateurs répond à un besoin de gestion. Retourne toi vers tes utilisateurs et pose leur des questions pour qu'ils précisent leur besoin en formulant des règles de gestion. Veulent-ils :
    • Faire le lien entre une Sous-rubrique et un Compte ?
    • Faire le lien entre une Sous-rubrique et un Groupe ?
    • Faire le lien entre une Sous-rubrique et un couple Compte-Groupe ?
    • Deux des ces possibilités ?
    • Les trois possibilités ?
    • Si un couple Compte-Groupe existe dans A1, veulent-ils faire un lien supplémentaire entre la sous-rubrique :
      • et le compte ?
      • et le groupe ?
    • etc.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  13. #13
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonjour JPhi33,

    Citation Envoyé par JPhi33 Voir le message
    Bonjour sab6,

    Du côté Rubrique/Sous-rubrique, faire le lien avec une Sous-rubrique est suffisant. En effet, avec la Sous-rubrique on obtient la Rubrique qu'elle référence.
    Non de mon point de vue ce n'est pas suffisant car il peut ne pas y avoir de sous-rubrique.

    Citation Envoyé par JPhi33 Voir le message
    Une demande des utilisateurs répond à un besoin de gestion. Retourne toi vers tes utilisateurs et pose leur des questions pour qu'ils précisent leur besoin en formulant des règles de gestion. Veulent-ils :
    • Faire le lien entre une Sous-rubrique et un Compte ?
    • Faire le lien entre une Sous-rubrique et un Groupe ?
    • Faire le lien entre une Sous-rubrique et un couple Compte-Groupe ?
    • Deux des ces possibilités ?
    • Les trois possibilités ?
    • Si un couple Compte-Groupe existe dans A1, veulent-ils faire un lien supplémentaire entre la sous-rubrique :
      • et le compte ?
      • et le groupe ?
    • etc.
    Mes utilisateurs souhaitent faire le lien avec chaque entité sachant que seul le compte est obligatoire et une autre donnée (domaine) qui n'apparait pas dans le schéma que je vous ai donné.
    En fait, je sais au final comment je souhaite ma table dans le MPD :
    Lien (Id_lien, libelle, idcompte# not null, iddomaine# not null, idgroupe#, idrubrique#, idsousrubrique#)
    Ce que je n'arrive pas à représenter avec certitude c'est le MCD.
    sab

  14. #14
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Bonjour sab6,

    Citation Envoyé par sab6 Voir le message
    Mes utilisateurs souhaitent faire le lien avec chaque entité
    Donc le lien serait entre l'une des entités parmi Compte et Groupe et l'une des entités parmi Rubrique et Sous-rubrique ?
    C'est-à-dire, schématiquement : (soit Compte soit Groupe) est lié à (soit Rubrique soit Sous-rubrique) ?
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  15. #15
    Candidat au Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Oui c'est cela
    Mais comment le modélier ?
    sab

  16. #16
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 057
    Points
    2 057
    Par défaut
    Comme ça :

    Nom : sab6-Liens.jpg
Affichages : 431
Taille : 56,9 Ko

    Deux contraintes d'exclusivité sont modélisées (en rouge) entre les associations LienC et LienG d'une part, et entre les associations LienR et LienS d'autre part. La contrainte de gauche signifie qu'une occurrence de l'entité Lien ne peut être liée qu'à une seule occurrence soit de Compte soit de Groupe à la fois ; idem pour la contrainte de droite avec Rubrique et Sous-rubrique.

    Les quatre entités LienX se transforment en tables lors de la dérivation du MCD en MLD. Chacune de ces tables est identifiée par id_lien et comporte une clé étrangère qui référence l'identifiant de l'entité cible de l'association :

    LienC (id_lien, id_compte)
    LienG (id_lien, id_groupe)
    LienR (id_lien, id_rubrique)
    LienS (id_lien, id_sous-rubrique)


    Voici quelques exemples pour un aperçu du contenu de ces tables.

    L1 relie C1 à R1
    L2 relie C2 à S1
    L3 relie G1 à R2
    L4 relie G2 à S2
    (où Lx sont des occurrences de Lien, Cx des occurrences de Compte, Gx des occurrences de Groupe, Rx des occurrences de Rubrique, Sx des occurrences de Sous-rubrique)


    Les tables LienX contiendront :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LienC   LienG   LienR   LienS
    -----   -----   -----   -----
    L1 C1   L3 G1   L1 R1   L2 S1
    L2 C2   L4 G2   L3 R2   L4 S2
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

Discussions similaires

  1. [MCD]Contraintes entre relations
    Par Nimothenicefish dans le forum Schéma
    Réponses: 11
    Dernier message: 18/01/2008, 15h21
  2. Association entre objet Id ou référence ?
    Par grosFab dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 19/04/2007, 14h41
  3. [MCD]Associations entre Entités
    Par flatron dans le forum Schéma
    Réponses: 8
    Dernier message: 09/02/2007, 18h07
  4. [Débutant] Choix entre attribut par relation & aggrégation/composition ?
    Par GrandFather dans le forum Diagrammes de Classes
    Réponses: 14
    Dernier message: 04/12/2006, 11h12
  5. [MCD] Associations entre trois entités
    Par wolflinger dans le forum Schéma
    Réponses: 5
    Dernier message: 21/03/2006, 15h49

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