Relations conjugales.. (extra)
Bonjour à tous,
Les relations liées au mariage me paraissent intéressantes... au niveau conceptuel MCD, j'entends.
Ce post est, sans doute, incomplet... et contenant, peut-être, quelques boulettes.
Cahier des charges :
- une personne ne peut pas se marier avec elle-même ;
- une personne peut se marier plusieurs fois (avec une personne différente ou pas) ;
- une personne peut se marier avec une autre personne du même sexe (à terme, peut-être) ;
- une personne peut se marier avec plusieurs personnes dans le cadre du même mariage ;
- l'ordre (la séquence) d'une personne dans le couple est indifférent.
Relation :
PERSONNES ---(0,n)---[est marié à]---(0,n) PERSONNES
Entité PERSONNES
- Id_Personne (PK)
- Nom
- Prenom
...
Entité MARIAGES
- Id_Conjoint_x
- Id_Conjoint_y
- Date_Mariage
...
==> x et y employés à dessein pour ne pas indiquer une sorte de hiérarchie (point 5 du cahier des charges).
Je ne sais pas comment modéliser deux choses :
Le point 1 du cahier des charges : Id_Conjoint_x doit être différent de Id_Conjoint_y ;
Le point 5 du cahier des charges : un couple Id_Conjoint_x=154 et Id_Conjoint_y=2018 est le même que Id_Conjoint_x=2018 et Id_Conjoint_y=154.
Au niveau PK, ça se corse...
- Id_Conjoint_x PK
- Id_Conjoint_y PK
- Date_Mariage PK
==> permet de gérer la polygamie (pour une application multi-culturelle). Mais, attention à la non-modélisation du point 1 et 5 du cahier des charges.
- Id_Conjoint_x PK
- Date_Mariage PK
- Id_Conjoint_y
et Date_Mariage/Id_Conjoint_y doit être un index unique.
==> permet de gérer, uniquement, la monogamie. Mais, attention à la non-modélisation du point 1 et 5 du cahier des charges.
Pas simple... également concernant le MCD...