add constraint to foreign keys

This commit is contained in:
Ronan 2022-12-07 14:39:52 +01:00
parent f8c47ca81f
commit 59f1f40e16

View file

@ -74,24 +74,31 @@ CREATE TABLE Evenement(
CREATE TABLE Congres( CREATE TABLE Congres(
idCongres INT NOT NULL, idCongres INT NOT NULL,
nb_inscriptions INT NOT NULL, nb_inscriptions INT NOT NULL,
class VARCHAR, classe VARCHAR(15),
FOREIGN KEY (idCongres) REFERENCES Evenement(idEvenement) ON DELETE CASCADE, PRIMARY KEY (idCongres),
PRIMARY KEY (idCongres) CONSTRAINT fk_congres
FOREIGN KEY (idCongres)
REFERENCES Evenement(idEvenement)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Ronan -- Ronan
CREATE TABLE Labo_externe( CREATE TABLE Labo_externe(
idLabo INT NOT NULL, idLabo SERIAL PRIMARY KEY,
nom VARCHAR, nom VARCHAR(255),
pays VARCHAR, pays VARCHAR(255),
PRIMARY KEY(idLabo)
); );
-- Ronan
CREATE TABLE Journee_Portes_Ouvertes( CREATE TABLE Journee_Portes_Ouvertes(
idPorteOuverte INT NOT NULL, idPorteOuverte INT NOT NULL,
FOREIGN KEY (idPorteOuverte) REFERENCES Evenement(idEvenement) ON DELETE CASCADE, PRIMARY KEY (idPorteOuverte),
PRIMARY KEY (idPorteOuverte) CONSTRAINT fk_jpo
FOREIGN KEY (idPorteOuverte)
REFERENCES Evenement(idEvenement)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Nathan -- Nathan
@ -135,45 +142,86 @@ CREATE TABLE Projet (
CREATE TABLE Participe( CREATE TABLE Participe(
idProjet INT NOT NULL, idProjet INT NOT NULL,
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
FOREIGN KEY (idProjet) REFERENCES Projet(idProjet) ON DELETE CASCADE, PRIMARY KEY (idProjet, idScientifique),
FOREIGN KEY (idScientifique) REFERENCES Scientifique(idScientifique) ON DELETE CASCADE, CONSTRAINT fk_Projet
PRIMARY KEY (idProjet, idScientifique) FOREIGN KEY (idProjet)
REFERENCES Projet(idProjet)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_Scientifique
FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Ronan -- Ronan
CREATE TABLE Preside( CREATE TABLE Preside(
idCongres INT NOT NULL, idCongres INT NOT NULL,
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
FOREIGN KEY (idCongres) REFERENCES Congres(idCongres) ON DELETE CASCADE, PRIMARY KEY (idCongres, idScientifique),
FOREIGN KEY (idScientifique) REFERENCES Scientifique(idScientifique) ON DELETE CASCADE, CONSTRAINT fk_Congres
PRIMARY KEY (idCongres, idScientifique) FOREIGN KEY (idCongres)
REFERENCES Congres(idCongres)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_Scientifique
FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Ronan -- Ronan
CREATE TABLE Publie_Scientifique( CREATE TABLE Publie_Scientifique(
idPublication INT NOT NULL, idPublication INT NOT NULL,
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
FOREIGN KEY (idPublication) REFERENCES Publication(idPublication) ON DELETE CASCADE, PRIMARY KEY (idPublication, idScientifique),
FOREIGN KEY (idScientifique) REFERENCES Scientifique(idScientifique) ON DELETE CASCADE,
PRIMARY KEY (idPublication, idScientifique) CONSTRAINT fk_Publication
FOREIGN KEY (idPublication)
REFERENCES Publication(idPublication)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_Scientifique
FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Ronan -- Ronan
CREATE TABLE Publie_Doctorant( CREATE TABLE Publie_Doctorant(
idPublication INT NOT NULL, idPublication INT NOT NULL,
idDoctorant INT NOT NULL, idDoctorant INT NOT NULL,
FOREIGN KEY (idPublication) REFERENCES Publication(idPublication) ON DELETE CASCADE, PRIMARY KEY (idPublication, idDoctorant),
FOREIGN KEY (idDoctorant) REFERENCES Doctorant(idDoctorant) ON DELETE CASCADE, CONSTRAINT fk_Publication
PRIMARY KEY (idPublication, idDoctorant) FOREIGN KEY (idPublication)
REFERENCES Publication(idPublication)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_Doctorant
FOREIGN KEY (idDoctorant)
REFERENCES Doctorant(idDoctorant)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Ronan -- Ronan
CREATE TABLE Publie_Externe( CREATE TABLE Publie_Externe(
idPublication INT NOT NULL, idPublication INT NOT NULL,
idAuteurExterne INT NOT NULL, idAuteurExterne INT NOT NULL,
FOREIGN KEY (idPublication) REFERENCES Publication(idPublication) ON DELETE CASCADE, PRIMARY KEY (idPublication, idAuteurExterne),
FOREIGN KEY (idAuteurExterne) REFERENCES Auteur_Externe(idAuteur) ON DELETE CASCADE, CONSTRAINT fk_Publication
PRIMARY KEY (idPublication, idAuteurExterne) FOREIGN KEY (idPublication)
REFERENCES Publication(idPublication)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_AuteurExterne
FOREIGN KEY (idAuteurExterne)
REFERENCES Auteur_Externe(idAuteur)
ON DELETE CASCADE
ON UPDATE
); );
--Yasmine --Yasmine
@ -188,18 +236,34 @@ CREATE TABLE Partenaire(
CREATE TABLE Participe_Externe( CREATE TABLE Participe_Externe(
idProjet INT NOT NULL, idProjet INT NOT NULL,
idPartenaire INT NOT NULL, idPartenaire INT NOT NULL,
FOREIGN KEY (idProjet) REFERENCES Projet(idProjet) ON DELETE CASCADE, PRIMARY KEY (idProjet, idPartenaire),
FOREIGN KEY (idPartenaire) REFERENCES Partenaire(idPartenaire) ON DELETE CASCADE, CONSTRAINT fk_Projet
PRIMARY KEY (idProjet, idPartenaire) FOREIGN KEY (idProjet)
REFERENCES Projet(idProjet)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_Partenaire
FOREIGN KEY (idPartenaire)
REFERENCES Partenaire(idPartenaire)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
-- Ronan -- Ronan
CREATE TABLE Organise ( CREATE TABLE Organise (
idPortesOuverte INT NOT NULL, idPortesOuverte INT NOT NULL,
idPersonnel INT NOT NULL, idPersonnel INT NOT NULL,
FOREIGN KEY (idPortesOuverte) REFERENCES Journee_Portes_Ouvertes(idPorteOuverte) ON DELETE CASCADE, PRIMARY KEY(idPortesOuverte, idPersonnel),
FOREIGN KEY (idPersonnel) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, CONSTRAINT fk_jpo
PRIMARY KEY(idPortesOuverte, idPersonnel) FOREIGN KEY (idPortesOuverte)
REFERENCES Journee_Portes_Ouvertes(idPorteOuverte)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_Personnel
FOREIGN KEY (idPersonnel)
REFERENCES Personnel(idPersonnel)
ON DELETE CASCADE
ON UPDATE CASCADE
); );
--Yasmine --Yasmine