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
| CREATE TABLE Personne
(
NoPersonne VARCHAR(16),
CONSTRAINT Personne_PK PRIMARY KEY(NoPersonne)
);
CREATE TABLE Logement
(
NoPersonne VARCHAR(16),
NoLogement SMALLINT,
NomLogement VARCHAR(24),
CONSTRAINT Logement_PK PRIMARY KEY(NoPersonne, NoLogement),
CONSTRAINT Logement_AK UNIQUE(NomLogement),
CONSTRAINT Logement_Personne_FK FOREIGN KEY(NoPersonne) REFERENCES Personne(NoPersonne) ON UPDATE CASCADE
);
CREATE TABLE Louer
(
NoPersonne VARCHAR(16),
NoProprio VARCHAR(16),
NoLogement SMALLINT,
CONSTRAINT Louer_PK PRIMARY KEY(NoPersonne, NoProprio, NoLogement),
CONSTRAINT Louer_Personne_FK FOREIGN KEY(NoPersonne) REFERENCES Personne(NoPersonne) ON DELETE CASCADE,
CONSTRAINT Louer_Logement_FK FOREIGN KEY(NoProprio, NoLogement) REFERENCES Logement(NoPersonne, NoLogement)
);
alter table Louer
add Constraint LouerExclusion Check (NoPersonne <> NoProprio) ; |
Partager