standardisé la création de tables

This commit is contained in:
nbillard 2022-12-10 12:42:29 +01:00
parent dc9b14f53a
commit 8bfc3ae46d
2 changed files with 107 additions and 55 deletions

View file

@ -155,8 +155,7 @@ INSERT INTO Etablissement VALUES (
--Yasmine --Yasmine
INSERT INTO Evenement VALUES ( INSERT INTO Evenement VALUES (
0001,INSERT INTO 0001,
DATE '2022-07-07', DATE '2022-07-07',
DATE '2023-07-07' DATE '2023-07-07'
); );
@ -288,7 +287,7 @@ INSERT INTO Publication VALUES(
'recherche scientifique sur la chimie organique', 'recherche scientifique sur la chimie organique',
DATE '2022-07-07', DATE '2022-07-07',
'conference des sciences', 'conference des sciences',
112, 'A*',
220 220
); );
@ -298,7 +297,7 @@ INSERT INTO Publication VALUES(
'Page rank', 'Page rank',
DATE '2022-07-07', DATE '2022-07-07',
'conference des sciences et technologies', 'conference des sciences et technologies',
112, 'A',
220 220
); );
@ -309,7 +308,7 @@ INSERT INTO Publication VALUES (
'chaine de markov', 'chaine de markov',
DATE '2022-12-03', DATE '2022-12-03',
'Mathematiques appliqués', 'Mathematiques appliqués',
113, 'B',
500 500
); );
@ -318,7 +317,7 @@ INSERT INTO Publication VALUES (
'Physique quantique', 'Physique quantique',
DATE '2017-12-03', DATE '2017-12-03',
'Physique', 'Physique',
113, 'A',
1520 1520
); );
@ -327,7 +326,7 @@ INSERT INTO Publication VALUES (
'La nourriture en France', 'La nourriture en France',
DATE '2022-12-03', DATE '2022-12-03',
'IEE', 'IEE',
112, 'A*',
20 20
); );

View file

@ -27,12 +27,14 @@ CREATE TYPE T_ECHELON AS ENUM (
-- Axel -- Axel
CREATE TABLE Personnel CREATE TABLE Personnel
( (
idPersonnel SERIAL CONSTRAINT UnePersonne PRIMARY KEY, idPersonnel SERIAL NOT NULL,
nom VARCHAR, nom VARCHAR,
prenom VARCHAR, prenom VARCHAR,
date_de_naissance DATE, date_de_naissance DATE,
adress VARCHAR, adress VARCHAR,
date_de_recrutement DATE date_de_recrutement DATE,
CONSTRAINT pk_Personnel
PRIMARY KEY (idPersonnel)
); );
--Axel --Axel
@ -40,7 +42,12 @@ CREATE TABLE Doctorant(
idDoctorant INT NOT NULL, idDoctorant INT NOT NULL,
date_debut_these DATE, date_debut_these DATE,
date_soutenance DATE, date_soutenance DATE,
FOREIGN KEY (idDoctorant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, CONSTRAINT fk_doctorant
FOREIGN KEY (idDoctorant)
REFERENCES Personnel(idPersonnel)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pk_doctorant
PRIMARY KEY(idDoctorant) PRIMARY KEY(idDoctorant)
); );
@ -48,17 +55,24 @@ CREATE TABLE Doctorant(
CREATE TABLE Scientifique( CREATE TABLE Scientifique(
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
grade T_GRADE, grade T_GRADE,
FOREIGN KEY (idScientifique) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, CONSTRAINT fk_scientifique
PRIMARY KEY (idScientifique) FOREIGN KEY (idScientifique)
REFERENCES Personnel(idPersonnel)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pk_scientifique
PRIMARY KEY(idScientifique)
); );
--Axel --Axel
CREATE TABLE Etablissement( CREATE TABLE Etablissement(
idEtablissement INT NOT NULL CONSTRAINT UnEtablissement PRIMARY Key, idEtablissement SERIAL NOT NULL,
nom VARCHAR, nom VARCHAR,
acronyme VARCHAR, acronyme VARCHAR,
adresse VARCHAR adresse VARCHAR,
CONSTRAINT pk_etablissement
PRIMARY KEY (idEtablissement)
); );
--Axel --Axel
@ -66,17 +80,27 @@ CREATE TABLE Enseignant_Chercheur(
idEnseignant INT NOT NULL, idEnseignant INT NOT NULL,
idEtablissement INT NOT NULL, idEtablissement INT NOT NULL,
echelon T_ECHELON, echelon T_ECHELON,
FOREIGN KEY (idEtablissement) REFERENCES Etablissement(idEtablissement) ON DELETE CASCADE, CONSTRAINT fk_etablissement
FOREIGN KEY (idEnseignant) REFERENCES Personnel(idPersonnel) ON DELETE CASCADE, FOREIGN KEY (idEtablissement)
REFERENCES Etablissement(idEtablissement)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_enseignant
FOREIGN KEY (idEnseignant)
REFERENCES Personnel(idPersonnel)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pk_enseignant
PRIMARY KEY (idEnseignant) PRIMARY KEY (idEnseignant)
); );
-- Nathan -- Nathan
CREATE TABLE Evenement( CREATE TABLE Evenement(
idEvenement INT NOT NULL, idEvenement SERIAL NOT NULL,
dateDebut DATE, dateDebut DATE,
dateFin DATE, dateFin DATE,
CONSTRAINT pk_evenement
PRIMARY KEY (idEvenement) PRIMARY KEY (idEvenement)
); );
@ -84,13 +108,14 @@ 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,
classe VARCHAR(15), classe T_CLASSECONF,
PRIMARY KEY (idCongres),
CONSTRAINT fk_congres CONSTRAINT fk_congres
FOREIGN KEY (idCongres) FOREIGN KEY (idCongres)
REFERENCES Evenement(idEvenement) REFERENCES Evenement(idEvenement)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_congres
PRIMARY KEY (idCongres)
); );
-- Ronan -- Ronan
@ -98,45 +123,53 @@ CREATE TABLE Labo_externe(
idLabo SERIAL NOT NULL, idLabo SERIAL NOT NULL,
nom VARCHAR(255), nom VARCHAR(255),
pays VARCHAR(255), pays VARCHAR(255),
CONSTRAINT pk_laboo
PRIMARY KEY (idLabo) PRIMARY KEY (idLabo)
); );
-- Ronan -- Ronan
CREATE TABLE Journee_Portes_Ouvertes( CREATE TABLE Journee_Portes_Ouvertes(
idPorteOuverte INT NOT NULL, idPorteOuverte INT NOT NULL,
PRIMARY KEY (idPorteOuverte), CONSTRAINT fk_porteOuverte
CONSTRAINT fk_jpo
FOREIGN KEY (idPorteOuverte) FOREIGN KEY (idPorteOuverte)
REFERENCES Evenement(idEvenement) REFERENCES Evenement(idEvenement)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_porteOuverte
PRIMARY KEY (idPorteOuverte)
); );
-- Nathan -- Nathan
CREATE TABLE Auteur_Externe ( CREATE TABLE Auteur_Externe (
idAuteur INT NOT NULL, idAuteur SERIAL NOT NULL,
nom VARCHAR, nom VARCHAR,
prenom VARCHAR, prenom VARCHAR,
adresseMail VARCHAR, adresseMail VARCHAR,
idLabo INT NOT NULL, idLabo INT NOT NULL,
FOREIGN KEY (idLabo) REFERENCES Labo_Externe(idLabo) ON DELETE CASCADE, CONSTRAINT fk_labo
FOREIGN KEY (idLabo)
REFERENCES Labo_Externe(idLabo)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pk_auteur
PRIMARY KEY (idAuteur) PRIMARY KEY (idAuteur)
); );
-- Nathan -- Nathan
CREATE TABLE Publication( CREATE TABLE Publication(
idPublication INT NOT NULL, idPublication SERIAL NOT NULL,
titre VARCHAR, titre VARCHAR,
annee DATE, annee DATE,
nomConf VARCHAR, nomConf VARCHAR,
classeConf T_CLASSECONF, classeConf T_CLASSECONF,
nbPages INT, nbPages INT,
CONSTRAINT pk_publication
PRIMARY KEY (idPublication) PRIMARY KEY (idPublication)
); );
--Yasmine --Yasmine
CREATE TABLE Projet ( CREATE TABLE Projet (
idProjet INT NOT NULL, idProjet SERIAL NOT NULL,
titre VARCHAR, titre VARCHAR,
acronyme VARCHAR, acronyme VARCHAR,
annee_debut DATE, annee_debut DATE,
@ -145,7 +178,12 @@ CREATE TABLE Projet (
budget_Laas INT NOT NULL, budget_Laas INT NOT NULL,
cout INT NOT NULL, cout INT NOT NULL,
idMeneurProjet INT NOT NULL, idMeneurProjet INT NOT NULL,
FOREIGN KEY (idMeneurProjet) REFERENCES Scientifique(idScientifique) ON DELETE CASCADE, CONSTRAINT fk_idMeneurProjet
FOREIGN KEY (idMeneurProjet)
REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pk_projet
PRIMARY KEY(idProjet) PRIMARY KEY(idProjet)
); );
@ -153,7 +191,6 @@ 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,
PRIMARY KEY (idProjet, idScientifique),
CONSTRAINT fk_Projet CONSTRAINT fk_Projet
FOREIGN KEY (idProjet) FOREIGN KEY (idProjet)
REFERENCES Projet(idProjet) REFERENCES Projet(idProjet)
@ -163,14 +200,15 @@ CREATE TABLE Participe(
FOREIGN KEY (idScientifique) FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique) REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_participe
PRIMARY KEY (idProjet, idScientifique)
); );
-- Ronan -- Ronan
CREATE TABLE Preside( CREATE TABLE Preside(
idCongres INT NOT NULL, idCongres INT NOT NULL,
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
PRIMARY KEY (idCongres, idScientifique),
CONSTRAINT fk_Congres CONSTRAINT fk_Congres
FOREIGN KEY (idCongres) FOREIGN KEY (idCongres)
REFERENCES Congres(idCongres) REFERENCES Congres(idCongres)
@ -180,15 +218,15 @@ CREATE TABLE Preside(
FOREIGN KEY (idScientifique) FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique) REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_preside
PRIMARY KEY (idCongres, idScientifique)
); );
-- 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,
PRIMARY KEY (idPublication, idScientifique),
CONSTRAINT fk_Publication CONSTRAINT fk_Publication
FOREIGN KEY (idPublication) FOREIGN KEY (idPublication)
REFERENCES Publication(idPublication) REFERENCES Publication(idPublication)
@ -198,14 +236,15 @@ CREATE TABLE Publie_Scientifique(
FOREIGN KEY (idScientifique) FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique) REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_publieScientifique
PRIMARY KEY (idPublication, idScientifique)
); );
-- 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,
PRIMARY KEY (idPublication, idDoctorant),
CONSTRAINT fk_Publication CONSTRAINT fk_Publication
FOREIGN KEY (idPublication) FOREIGN KEY (idPublication)
REFERENCES Publication(idPublication) REFERENCES Publication(idPublication)
@ -215,14 +254,15 @@ CREATE TABLE Publie_Doctorant(
FOREIGN KEY (idDoctorant) FOREIGN KEY (idDoctorant)
REFERENCES Doctorant(idDoctorant) REFERENCES Doctorant(idDoctorant)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_publieDoctorant
PRIMARY KEY (idPublication, idDoctorant)
); );
-- 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,
PRIMARY KEY (idPublication, idAuteurExterne),
CONSTRAINT fk_Publication CONSTRAINT fk_Publication
FOREIGN KEY (idPublication) FOREIGN KEY (idPublication)
REFERENCES Publication(idPublication) REFERENCES Publication(idPublication)
@ -232,14 +272,17 @@ CREATE TABLE Publie_Externe(
FOREIGN KEY (idAuteurExterne) FOREIGN KEY (idAuteurExterne)
REFERENCES Auteur_Externe(idAuteur) REFERENCES Auteur_Externe(idAuteur)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_publieExterne
PRIMARY KEY (idPublication, idAuteurExterne),
); );
--Yasmine --Yasmine
CREATE TABLE Partenaire( CREATE TABLE Partenaire(
idPartenaire INT NOT NULL, idPartenaire SERIAL NOT NULL,
nom VARCHAR, nom VARCHAR,
pays VARCHAR, pays VARCHAR,
CONSTRAINT pk_partenaire
PRIMARY KEY(idPartenaire) PRIMARY KEY(idPartenaire)
); );
@ -247,7 +290,6 @@ 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,
PRIMARY KEY (idProjet, idPartenaire),
CONSTRAINT fk_Projet CONSTRAINT fk_Projet
FOREIGN KEY (idProjet) FOREIGN KEY (idProjet)
REFERENCES Projet(idProjet) REFERENCES Projet(idProjet)
@ -257,7 +299,9 @@ CREATE TABLE Participe_Externe(
FOREIGN KEY (idPartenaire) FOREIGN KEY (idPartenaire)
REFERENCES Partenaire(idPartenaire) REFERENCES Partenaire(idPartenaire)
ON DELETE CASCADE ON DELETE CASCADE
ON UPDATE CASCADE ON UPDATE CASCADE,
CONSTRAINT pk_participeExterne
PRIMARY KEY (idProjet, idPartenaire)
); );
-- Ronan -- Ronan
@ -281,8 +325,17 @@ CREATE TABLE Organise (
CREATE TABLE Encadrement ( CREATE TABLE Encadrement (
idDoctorant INT NOT NULL, idDoctorant INT NOT NULL,
idScientifique INT NOT NULL, idScientifique INT NOT NULL,
FOREIGN KEY (idDoctorant) REFERENCES Doctorant(idDoctorant) ON DELETE CASCADE, CONSTRAINT fk_doctorant
FOREIGN KEY (idScientifique) REFERENCES Scientifique(idScientifique) ON DELETE CASCADE, FOREIGN KEY (idDoctorant)
REFERENCES Doctorant(idDoctorant)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT fk_scientifique
FOREIGN KEY (idScientifique)
REFERENCES Scientifique(idScientifique)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pk_encadrement
PRIMARY KEY(idScientifique,idDoctorant) PRIMARY KEY(idScientifique,idDoctorant)
); );