· 4 years ago · Jun 18, 2021, 08:00 AM
1--Création des tables--
2CREATE TABLE IF NOT EXISTS personne (
3 personne_id SERIAL,
4 personne_nom varchar(256) NOT NULL,
5 personne_prenom varchar(256) NOT NULL,
6 PRIMARY KEY (personne_id)
7);
8CREATE TABLE IF NOT EXISTS membresGroupe (
9 personne_id integer NOT NULL,
10 groupe_id integer NOT NULL,
11 UNIQUE (personne_id, groupe_id)
12);
13CREATE TABLE IF NOT EXISTS groupe (
14 groupe_id SERIAL,
15 nomDeScene varchar(256) NOT NULL,
16 PRIMARY KEY (groupe_id)
17);
18CREATE TABLE IF NOT EXISTS typeSalle (
19 typeSalle_id SERIAL,
20 typeSalle varchar(256) NOT NULL,
21 placesMax integer,
22 placesMin integer,
23 nbSecurite integer,
24 PRIMARY KEY (typeSalle_id)
25);
26CREATE TABLE IF NOT EXISTS agentSecurite (
27 personne_id integer NOT NULL,
28 concert_id integer NOT NULL,
29 groupe_id integer NOT NULL,
30 UNIQUE (personne_id, concert_id, groupe_id)
31);
32CREATE TABLE IF NOT EXISTS date (
33 groupe_id SERIAL,
34 concert_id integer NOT NULL,
35 date timestamp NOT NULL,
36 UNIQUE (groupe_id, concert_id, date)
37);
38CREATE TABLE IF NOT EXISTS salle (
39 salle_id SERIAL,
40 salle_nom varchar(256),
41 typeSalle_id integer NOT NULL,
42 coutParConcert real NOT NULL,
43 nbPlaces integer,
44 PRIMARY KEY (salle_id)
45);
46CREATE TABLE IF NOT EXISTS concert (
47 concert_id SERIAL,
48 cachet varchar(256) NOT NULL,
49 capaciteDemandee integer NOT NULL,
50 salle_id integer NOT NULL,
51 PRIMARY KEY (concert_id)
52);
53CREATE TABLE IF NOT EXISTS billet (
54 billet_id SERIAL,
55 prixBillet real NOT NULL,
56 concert_id integer NOT NULL,
57 PRIMARY KEY (billet_id)
58);
59CREATE TABLE IF NOT EXISTS sponsor (
60 sponsor_id SERIAL,
61 sponsor_nom varchar(256) NOT NULL,
62 PRIMARY KEY (sponsor_id)
63);
64CREATE TABLE IF NOT EXISTS sponsorise (
65 sponsor_id integer NOT NULL,
66 concert_id integer NOT NULL,
67 UNIQUE (sponsor_id, concert_id)
68);
69
70--Création des contraintes
71ALTER TABLE membresGroupe DROP CONSTRAINT IF EXISTS fk_personne_id;
72ALTER TABLE membresGroupe DROP CONSTRAINT IF EXISTS fk_groupe_id;
73ALTER TABLE membresGroupe
74 ADD CONSTRAINT fk_personne_id FOREIGN KEY (personne_id) REFERENCES personne(personne_id),
75 ADD CONSTRAINT fk_groupe_id FOREIGN KEY (groupe_id) REFERENCES groupe(groupe_id);
76
77ALTER TABLE agentSecurite DROP CONSTRAINT IF EXISTS fk_personne_id;
78ALTER TABLE agentSecurite DROP CONSTRAINT IF EXISTS fk_groupe_id;
79ALTER TABLE agentSecurite DROP CONSTRAINT IF EXISTS fk_concert_id;
80ALTER TABLE agentSecurite
81 ADD CONSTRAINT fk_personne_id FOREIGN KEY (personne_id) REFERENCES personne(personne_id),
82 ADD CONSTRAINT fk_groupe_id FOREIGN KEY (groupe_id) REFERENCES groupe(groupe_id),
83 ADD CONSTRAINT fk_concert_id FOREIGN KEY (concert_id) REFERENCES concert(concert_id);
84
85ALTER TABLE date DROP CONSTRAINT IF EXISTS fk_concert_id;
86ALTER TABLE date DROP CONSTRAINT IF EXISTS fk_groupe_id;
87ALTER TABLE date
88 ADD CONSTRAINT fk_concert_id FOREIGN KEY (concert_id) REFERENCES concert(concert_id),
89 ADD CONSTRAINT fk_groupe_id FOREIGN KEY (groupe_id) REFERENCES groupe(groupe_id);
90
91ALTER TABLE salle DROP CONSTRAINT IF EXISTS fk_typeSalle_id;
92ALTER TABLE salle
93 ADD CONSTRAINT fk_typeSalle_id FOREIGN KEY (typeSalle_id) REFERENCES typeSalle(typeSalle_id);
94
95ALTER TABLE concert DROP CONSTRAINT IF EXISTS fk_salle_id;
96ALTER TABLE concert
97 ADD CONSTRAINT fk_salle_id FOREIGN KEY (salle_id) REFERENCES salle(salle_id);
98
99ALTER TABLE billet DROP CONSTRAINT IF EXISTS fk_concert_id;
100ALTER TABLE billet
101 ADD CONSTRAINT fk_concert_id FOREIGN KEY (concert_id) REFERENCES concert(concert_id);
102
103ALTER TABLE sponsorise DROP CONSTRAINT IF EXISTS fk_sponsor_id;
104ALTER TABLE sponsorise DROP CONSTRAINT IF EXISTS fk_concert_id;
105ALTER TABLE sponsorise
106 ADD CONSTRAINT fk_sponsor_id FOREIGN KEY (sponsor_id) REFERENCES sponsor(sponsor_id),
107 ADD CONSTRAINT fk_concert_id FOREIGN KEY (concert_id) REFERENCES concert(concert_id);
108
109--Ajout des données
110INSERT INTO typeSalle (typeSalle, placesMax, placesMin, nbSecurite) VALUES
111 ('Stade', NULL, 20000, 50),
112 ('Halle', 19999, 5000, 24),
113 ('Stade', 4999, 1, 12);