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

View file

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