-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreationTables.sql
More file actions
272 lines (193 loc) · 6.03 KB
/
creationTables.sql
File metadata and controls
272 lines (193 loc) · 6.03 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
/*
SUPPRESSION DES DIFFERENTES TABLES AU BESOIN
*/
DROP TABLE IF EXISTS LabExterne;
DROP TABLE IF EXISTS Conference;
DROP TABLE IF EXISTS Publication;
DROP TABLE IF EXISTS AuteurExterne;
DROP TABLE IF EXISTS Personnel;
DROP TABLE IF EXISTS Scientifique;
DROP TABLE IF EXISTS Doctorant;
DROP TABLE IF EXISTS PublicationPersonnel;
DROP TABLE IF EXISTS PublicationExterne;
DROP TABLE IF EXISTS Chercheur;
DROP TABLE IF EXISTS ChercheurEnseignant;
DROP TABLE IF EXISTS ListePartenaire;
DROP TABLE IF EXISTS ListePartenairePorteOuverte;
DROP TABLE IF EXISTS ParticipantProjet;
DROP TABLE IF EXISTS President;
DROP TABLE IF EXISTS ProjetLAAS;
DROP TABLE IF EXISTS congres;
DROP TABLE IF EXISTS encadrer;
DROP TABLE IF EXISTS etablisement;
DROP TABLE IF EXISTS partenaire;
DROP TABLE IF EXISTS portesouvertes;
DROP TABLE IF EXISTS publication;
-- LAB EXTERNE
CREATE TABLE LabExterne
(
idlaboratoireexterne VARCHAR(4) PRIMARY KEY,
nom VARCHAR(20),
pays VARCHAR(20)
);
-- CONFERENCE
CREATE TABLE conference
(
idConference VARCHAR(4) PRIMARY KEY,
nomConference VARCHAR(40),
classeConference VARCHAR(2)
);
-- PUBLICATION
CREATE TABLE publication
(
idPublication VARCHAR(4) PRIMARY KEY,
idConference VARCHAR(4) REFERENCES Conference(idConference),
titre VARCHAR(40),
anneePublication INT,
nbPages INT
);
-- AUTEUR EXTERNE
CREATE TABLE auteurExterne
(
idAuteurExterne VARCHAR(4) PRIMARY KEY,
nom VARCHAR(20),
prenom VARCHAR(20),
email VARCHAR(40),
idLaboratoireExterne VARCHAR(4) REFERENCES LabExterne(idlaboratoireexterne)
);
-- PERSONEL
CREATE TABLE personnel
(
idPersonnel VARCHAR(4) PRIMARY KEY,
nom VARCHAR(20),
prenom VARCHAR(20),
dateNaissance date,
dateRecrutement date,
adresse VARCHAR(100)
);
-- SCIENTIFIQUE
CREATE TABLE scientifique
(
idScientifique VARCHAR(4) PRIMARY KEY REFERENCES Personnel(idPersonnel),
grade VARCHAR(5)
);
-- DOCTORANT
CREATE TABLE doctorant
(
idDoctorant VARCHAR(4) PRIMARY KEY REFERENCES Personnel(idPersonnel),
dateDebutThese date,
dateDebutSoutenance date
);
-- PublicationPersonnel
CREATE TABLE publicationPersonnel
(
idPersonnel VARCHAR(4) REFERENCES Personnel (idPersonnel),
idPublication VARCHAR(4) REFERENCES Publication (idPublication),
CONSTRAINT pk_personnel_publication PRIMARY KEY(idPersonnel,idPublication)
);
-- PublicationExterne
CREATE TABLE publicationExterne
(
idAuteurExterne VARCHAR(4) REFERENCES AuteurExterne (idAuteurExterne),
idPublication VARCHAR(4) REFERENCES Publication (idPublication),
CONSTRAINT pk_externe_publication PRIMARY KEY(idAuteurExterne,idPublication)
);
-- Chercheur
CREATE TABLE chercheur (
idChercheur character varying PRIMARY KEY REFERENCES Scientifique(idScientifique),
grade character varying
);
-- ChercheurEnseignant
CREATE TABLE ChercheurEnseignant (
"idChercheur" character varying,
echelon character varying,
idetablissement character varying NOT NULL
);
-- ListePartenaire
CREATE TABLE ListePartenaire (
"idProjet" character varying,
"idPartenaire" character varying,
CONSTRAINT "Partenaire_fkey" FOREIGN KEY ("idPartenaire") REFERENCES partenaire(idpartenaire),
CONSTRAINT "Porteur_fkey" FOREIGN KEY ("idProjet") REFERENCES "ProjetLAAS"("idProjet")
);
-- ListePartenairePorteOuverte
CREATE TABLE ListePartenairePorteOuverte (
"idPersonnel" character varying,
"idPorte" character varying,
CONSTRAINT "Personnel_fkey" FOREIGN KEY ("idPersonnel") REFERENCES personnel(idpersonnel),
CONSTRAINT "Porte_fkey" FOREIGN KEY ("idPorte") REFERENCES portesouvertes(idporte)
);
-- ParticipantProjet
CREATE TABLE ParticipantProjet (
"idProjet" character varying,
"idChercheur" character varying,
CONSTRAINT "Projet_fkey" FOREIGN KEY ("idProjet") REFERENCES "ProjetLAAS"("idProjet")
);
-- President
CREATE TABLE President (
"idCongres" character varying,
"idChercheur" character varying,
CONSTRAINT "Congres_fkey" FOREIGN KEY ("idCongres") REFERENCES congres(idcongres)
);
-- ProjetLAAS
CREATE TABLE ProjetLAAS (
"idProjet" character varying NOT NULL,
titre character varying,
acronyme character varying,
"anneeDebut" character varying,
duree character varying,
"coutGlobal" integer,
"budgetLAAS" integer,
"idPorteur" character varying,
CONSTRAINT "Projet_pkey" PRIMARY KEY ("idProjet"),
CONSTRAINT "Personnel_fkey" FOREIGN KEY ("idPersonnel") REFERENCES public.personnel(idpersonnel)
);
-- congres
CREATE TABLE congres (
idcongres character varying(255) NOT NULL,
datedebut date,
datefin date,
classe character varying(255),
nbparticipants integer,
CONSTRAINT "congres_pkey" PRIMARY KEY (idcongres)
);
-- encadrer
CREATE TABLE encadrer (
idsientifique character varying NOT NULL,
iddoctorant character varying NOT NULL,
CONSTRAINT "encadrer_pkey" PRIMARY KEY (idsientifique),
CONSTRAINT "encadrer_iddoctorant_fkey" FOREIGN KEY (iddoctorant) REFERENCES doctorant(iddoctorant),
CONSTRAINT "encadrer_idsientifique_fkey" FOREIGN KEY (idsientifique) REFERENCES personnel(idpersonnel)
);
-- etablisement
CREATE TABLE etablisement (
idetablisement character varying(255) NOT NULL,
nom character varying(255),
acronyme character varying(255),
adresse character varying(255),
CONSTRAINT "etablisement_pkey" PRIMARY KEY (idetablisement)
);
-- partenaire
CREATE TABLE partenaire (
idpartenaire character varying(255) NOT NULL,
nom character varying(255),
pays character varying(255),
CONSTRAINT "partenaire_pkey" PRIMARY KEY (idpartenaire)
);
-- portesouvertes
CREATE TABLE portesouvertes (
idporte character varying(255) NOT NULL,
"datedébut" date,
datefin date,
CONSTRAINT "portesouvertes_pkey" PRIMARY KEY (idporte)
);
-- publication
CREATE TABLE publication (
idpublication character varying(255) NOT NULL,
titre character varying(255),
anneepublication integer,
nomconference character varying(255),
classconference character varying(255),
nbpage integer,
CONSTRAINT "publiction_pkey" PRIMARY KEY (idpublication)
);