Bonsoir Kuros,
Vous postez dans le forum Merise : commencez par les règles de gestion des données et un MCD.
Fournissez toujours des règles complètes. Vous écrivez par exemple :
Un utilisateur peut avoir plusieurs responsables (co-responsable).
Il faudrait compléter par :
Un utilisateur peut être responsable de plusieurs utilisateurs.
Vous écrivez :
Un utilisateur peut avoir un binôme.
Il faudrait compléter (probablement) par :
Et un utilisateur peut être binôme d’au plus un utilisateur.
Si les règles sont celles-là, le MCD serait le suivant :
Le MLD correspondant :
Et le code SQL :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
CREATE TABLE UTILISATEUR
(
Id_Utilisateur INT NOT NULL,
Nom VARCHAR(32) NOT NULL,
Prenom VARCHAR(32) NOT NULL,
CONSTRAINT _UTILISATEUR_PK PRIMARY KEY (Id_Utilisateur)
) ;
CREATE TABLE RESPONSABILITE
(
Id_Utilisateur INT NOT NULL,
Id_Responsable INT NOT NULL,
CONSTRAINT RESPONSABILITE_PK PRIMARY KEY (Id_Utilisateur, Id_Responsable),
CONSTRAINT RESPONSABILITE_UTILISATEUR_FK FOREIGN KEY (Id_Utilisateur)
REFERENCES UTILISATEUR (Id_Utilisateur),
CONSTRAINT RESPONSABILITE_RESPONSABLE_FK FOREIGN KEY (Id_Responsable)
REFERENCES UTILISATEUR (Id_Utilisateur)
) ;
CREATE TABLE BINOMER
(
Id_Utilisateur INT NOT NULL,
Id_Binome INT NOT NULL,
CONSTRAINT BINOMER_PK PRIMARY KEY (Id_Utilisateur),
CONSTRAINT BINOMER_AK UNIQUE (Id_Binome),
CONSTRAINT BINOMER_UTILISATEUR_FK FOREIGN KEY (Id_Utilisateur)
REFERENCES UTILISATEUR (Id_Utilisateur),
CONSTRAINT BINOMER_RESPONSABLE_FK FOREIGN KEY (Id_Binome)
REFERENCES UTILISATEUR (Id_Utilisateur),
CONSTRAINT BINOMER_CHK01 CHECK (Id_Utilisateur <> Id_Binome)
) ; |
Quelques contraintes à prévoir :
On ne peut pas être son propre supérieur, on ne peut pas être son propre binôme.
Partager