Bonsoir à tous,

Dans la droite ligne des cas traités récemment de prise en compte des contraintes dans le DDL, voici un cas assez classique que je soumets à votre sagacité !
Il s'agit de définir les triggers nécessaires à la gestion de l'eXclusivité dans le cadre d'un héritage.
Voici un petit MCD pour traiter le sujet le plus simplement possible :
Nom : Trigger Héritage.jpg
Affichages : 243
Taille : 74,5 Ko

Voici le MLD correspondant :
Nom : Trigger Héritage MLD.jpg
Affichages : 237
Taille : 74,5 Ko

et le DDL (PostgreSQL) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE Personnel(
   Matricule INTEGER,
   Prénom VARCHAR(50),
   Nom VARCHAR(50),
   Date_Naissance DATE,
   CONSTRAINT PK_Personnel PRIMARY KEY(Matricule)
);

CREATE TABLE Administratif(
   Matricule INTEGER,
   Fonction VARCHAR(50),
   Salaire_Mensuel MONEY,
   CONSTRAINT PK_Administratif PRIMARY KEY(Matricule),
   CONSTRAINT FK_Administratif_Personnel FOREIGN KEY(Matricule) REFERENCES Personnel(Matricule)
);

CREATE TABLE Enseignant(
   Matricule INTEGER,
   Grade VARCHAR(30),
   Échelon SMALLINT,
   CONSTRAINT PK_Enseignant PRIMARY KEY(Matricule),
   CONSTRAINT FK_Enseignant_Personnel FOREIGN KEY(Matricule) REFERENCES Personnel(Matricule)
);
Il s'agit donc de s'assurer qu'un enseignant n'apparait pas dans la table des administratifs, et vice-versa, dans le cadre d'une insertion ou d'une modification (si possible en PostgreSQL).
Est-ce que cela vous inspire ?