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 :

Plusieurs associations entre deux entités [MCD]


Sujet :

Schéma

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut Plusieurs associations entre deux entités
    Bonjour,

    Je souhaite avoir des avis sur une partie d'un MCD que je suis en train de réaliser.

    Voici :

    J'ai créé une table personnes contenant des attributs décrivants une personne.
    J'ai créé une table association contenant des attributs décrivants une association (loi 1901 ...).

    Dans une asso, on trouve le président(e), le trésorier(e), les adhérents ...

    Pour modéliser ces ces relations, j'ai créé trois association :
    -Gérer (pour le président)
    -Compter (Pour le trésorier)
    -Adhérer (pour les adhérents)

    voici la modélisation que j'ai faite :
    Nom : Capture_BDD_PERS_ASSO_01.JPG
Affichages : 2441
Taille : 36,9 Ko

    Mes questions :
    --> Est-ce dans les normes de créer, comme je l'ai fait, plusieurs relations simples entre deux tables ?
    --> Existe-t-il une manière, une norme pour représenter les liens du président, du trésorier et des adhérents ?
    --> Si vous avez des conseils, n'hésitez pas !

    Je pose ces questions car j'ai l'impression que ce que j'ai fait n'est pas dans les normes. En effet, imaginez que nous ayons beaucoup plus de postes que président trésorier et adhérents (on peu imaginer beaucoup de choses complexes), faudra-t-il tous les modéliser de cette façon ?
    Si il y a mille postes différents, j'aurais mille relations simples entre deux tables ?

    Merci pour vos aides !
    OS : LinuxMint 20

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Vous pouvez faire une association ternaire :

    Personne -0,n----operer----0,n- Association
    Fonction -0,n---------|

    Au passage...
    1) Nommez vos entités-types au singulier.
    Le MCD ci-dessus est issu des règles de gestion suivantes :
    - Une personne peut opérer dans plusieurs associations avec plusieurs fonctions ;
    - Une association peut voir opérer plusieurs personnes avec plusieurs fonctions ;
    - Une fonction peut qualifier l'opération de plusieurs personnes dans plusieurs associations.

    À chaque fois, on se pose la question pour UNE personne, UNE association, UNE fonction, afin de déterminer les cardinalités. L'entité-type doit donc être au singulier pour plus de clarté.

    2) Le nombre de membres de l'association est une donnée calculable.
    Inutile de la stocker en base de données.

    3) On ne parle plus de "nom de jeune fille" mais de nom patronymique.
    L'autre nom éventuel est le nom d'usage, lequel nom d'usage peut aussi s'appliquer à un homme, d'où l'abandon de la notion de nom de jeune fille, remplacé par le nom patronymique (ou nom de naissance).

    4) Il n'y a pas de clé dans vos entités types.
    Ajoutez un identifiant de type entier et qui sera auto-incrémenté par la base de données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 !

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour et merci pour votre réponse !

    c'est vrai que la ternaire est bien adaptée à ce genre de situation.

    Par contre, pensez-vous qu'il ne pourra y avoir qu'un seul président dans une association avec le schéma que vous proposez ? Je pose cette question car j'ai l'impression qu'avec cette ternaire, il se peut que je peut faire :
    - Mr.X président de l'asso A
    -Mme.Y présidente de l'asso A

    Comment restreindre a un seul président, un seul trésorier mais plusieurs adhérents ? et imaginons le cas où je veuille 1 président, trois trésoriers, et multiples adhérents ... comment faire dans ce cas ?

    De plus, si je désire harmoniser les fonctions, dois-je créer une quatrième table FONCTIONS (avec pour attrubut : nomFonction par exemple) et transformer la ternaire en quaternaire ?

    Concernant les identifiants, vu que je ne suis qu'au MCD, je ne les mets pas encore car Open Model Sphère a une fonction de création automatique des identifiants.

    Merci pour le nom patronimique

    Merci pour cette aide !
    OS : LinuxMint 20

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je vais commencer ma réponse par là :
    Citation Envoyé par francky74
    De plus, si je désire harmoniser les fonctions, dois-je créer une quatrième table FONCTIONS (avec pour attrubut : nomFonction par exemple) et transformer la ternaire en quaternaire ?
    Il y a déjà une entité-type Fonction dans mon MCD !
    Je le redonne ci-dessous en mettant en gras les entités-types :
    Citation Envoyé par CinéPhil
    Personne -0,n----operer----0,n- Association
    Fonction -0,n---------|
    Selon mon standard de nommage, inspiré de celui de SQLPro, mon MCD génère les tables suivantes :
    te_personne_prs (prs_id, prs_nom_usage, prs_prenom, prs_nom_patronymique, prs_date_naissance...)
    te_association_asn (asn_id, asn_nom...)
    te_fonction_fct (fct_id, fct_nom)
    tj_prs_operer_asn_fct_poaf (poaf_id_personne, poaf_id_association, poaf_id_fonction...)

    Citation Envoyé par francky74
    Par contre, pensez-vous qu'il ne pourra y avoir qu'un seul président dans une association avec le schéma que vous proposez ? Je pose cette question car j'ai l'impression qu'avec cette ternaire, il se peut que je peut faire :
    - Mr.X président de l'asso A
    -Mme.Y présidente de l'asso A
    Effectivement, mon schéma n'interdit pas 2 présidents à une association.

    Citation Envoyé par francky74
    Comment restreindre a un seul président, un seul trésorier mais plusieurs adhérents ? et imaginons le cas où je veuille 1 président, trois trésoriers, et multiples adhérents ... comment faire dans ce cas ?
    Vous pouvez poser une contrainte qui empêche ce phénomène, laquelle contrainte se traduira en base de données par un trigger.

    Citation Envoyé par francky74
    Concernant les identifiants, vu que je ne suis qu'au MCD, je ne les mets pas encore car Open Model Sphère a une fonction de création automatique des identifiants.
    Fainéant !
    Je n'avais pas repéré cette fonctionnalité dans Open Modelsphere mais je ne l'aurais de toute façon pas utilisée parce que je préfère nommer moi même les objets de la BDD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 !

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 757
    Points : 572
    Points
    572
    Par défaut
    Bonjour !

    Effectivement, la table FONCTION était représentée ... je suis peut-être un peu fatigué ....

    Merci pour tous ces renseignements !
    OS : LinuxMint 20

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

Discussions similaires

  1. Plusieurs associations entre deux classes
    Par aminooos dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 07/08/2011, 20h52
  2. Réponses: 3
    Dernier message: 12/04/2008, 20h24
  3. Association entre deux classes en dotnet
    Par lulu3111 dans le forum C++/CLI
    Réponses: 4
    Dernier message: 18/04/2007, 21h15
  4. [XSL / XML] Conserver un espace entre deux entités
    Par alkolo dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/03/2006, 14h26
  5. [MCD] Associations entre trois entités
    Par wolflinger dans le forum Schéma
    Réponses: 5
    Dernier message: 21/03/2006, 14h49

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