-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathGuideResto_CREATE_TABLES.sql
106 lines (95 loc) · 3.82 KB
/
GuideResto_CREATE_TABLES.sql
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
DROP SEQUENCE SEQ_RESTAURANTS;
DROP SEQUENCE SEQ_TYPES_GASTRONOMIQUES;
DROP SEQUENCE seq_VILLES;
DROP SEQUENCE SEQ_EVAL;
DROP SEQUENCE SEQ_NOTES;
DROP SEQUENCE SEQ_CRITERES_EVALUATION;
DROP TABLE RESTAURANTS CASCADE CONSTRAINTS;
DROP TABLE TYPES_GASTRONOMIQUES CASCADE CONSTRAINTS;
DROP TABLE VILLES CASCADE CONSTRAINTS;
DROP TABLE COMMENTAIRES CASCADE CONSTRAINTS;
DROP TABLE LIKES CASCADE CONSTRAINTS;
DROP TABLE NOTES CASCADE CONSTRAINTS;
DROP TABLE CRITERES_EVALUATION CASCADE CONSTRAINTS;
CREATE TABLE RESTAURANTS (numero number(10) NOT NULL, nom varchar2(100) NOT NULL, adresse varchar2(100) NOT NULL, description clob, site_web varchar2(100), fk_type number(10) NOT NULL, fk_vill number(10) NOT NULL, PRIMARY KEY (numero));
CREATE TABLE TYPES_GASTRONOMIQUES (numero number(10) NOT NULL, libelle varchar2(100) NOT NULL UNIQUE, description clob NOT NULL, PRIMARY KEY (numero));
CREATE TABLE VILLES (numero number(10) NOT NULL, code_postal varchar2(100) NOT NULL, nom_ville varchar2(100) NOT NULL, PRIMARY KEY (numero));
CREATE TABLE COMMENTAIRES (numero number(10) NOT NULL, date_eval date NOT NULL, commentaire clob NOT NULL, nom_utilisateur varchar2(100) NOT NULL, fk_rest number(10), PRIMARY KEY (numero));
CREATE TABLE LIKES (numero number(10) NOT NULL, appreciation char(1) NOT NULL, date_eval date NOT NULL, adresse_ip varchar2(100) NOT NULL, fk_rest number(10) NOT NULL, PRIMARY KEY (numero));
CREATE TABLE NOTES (numero number(10) NOT NULL, note number(3) NOT NULL, fk_comm number(10) NOT NULL, fk_crit number(10) NOT NULL, PRIMARY KEY (numero));
CREATE TABLE CRITERES_EVALUATION (numero number(10) NOT NULL, nom varchar2(100) NOT NULL UNIQUE, description varchar2(512), PRIMARY KEY (numero));
ALTER TABLE RESTAURANTS ADD CONSTRAINT FK_REST_TYPE FOREIGN KEY (fk_type) REFERENCES TYPES_GASTRONOMIQUES (numero);
ALTER TABLE RESTAURANTS ADD CONSTRAINT FK_REST_VILL FOREIGN KEY (fk_vill) REFERENCES VILLES (numero);
ALTER TABLE COMMENTAIRES ADD CONSTRAINT FK_COMM_REST FOREIGN KEY (fk_rest) REFERENCES RESTAURANTS (numero);
ALTER TABLE NOTES ADD CONSTRAINT FK_NOTE_COMM FOREIGN KEY (fk_comm) REFERENCES COMMENTAIRES (numero);
ALTER TABLE NOTES ADD CONSTRAINT FK_NOTE_CRIT FOREIGN KEY (fk_crit) REFERENCES CRITERES_EVALUATION (numero);
ALTER TABLE LIKES ADD CONSTRAINT FK_LIKE_REST FOREIGN KEY (fk_rest) REFERENCES RESTAURANTS (numero);
CREATE SEQUENCE SEQ_RESTAURANTS;
CREATE SEQUENCE SEQ_TYPES_GASTRONOMIQUES;
CREATE SEQUENCE SEQ_VILLES;
CREATE SEQUENCE SEQ_EVAL;
CREATE SEQUENCE SEQ_NOTES;
CREATE SEQUENCE SEQ_CRITERES_EVALUATION;
CREATE OR REPLACE TRIGGER TR_BIF_RESTAURANTS
BEFORE INSERT ON RESTAURANTS
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_RESTAURANTS.NEXTVAL;
END IF;
END;
/
CREATE OR REPLACE TRIGGER TR_BIF_TYPES_GASTRONOMIQUES
BEFORE INSERT ON TYPES_GASTRONOMIQUES
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_TYPES_GASTRONOMIQUES.NEXTVAL;
END IF;
END;
/
CREATE OR REPLACE TRIGGER TR_BIF_VILLES
BEFORE INSERT ON VILLES
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_VILLES.NEXTVAL;
END IF;
END;
/
CREATE OR REPLACE TRIGGER TR_BIF_COMMENTAIRES
BEFORE INSERT ON COMMENTAIRES
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_EVAL.NEXTVAL;
END IF;
END;
/
CREATE OR REPLACE TRIGGER TR_BIF_LIKES
BEFORE INSERT ON LIKES
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_EVAL.NEXTVAL;
END IF;
END;
/
CREATE OR REPLACE TRIGGER TR_BIF_NOTES
BEFORE INSERT ON NOTES
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_NOTES.NEXTVAL;
END IF;
END;
/
CREATE OR REPLACE TRIGGER TR_BIF_CRITERES_EVALUATION
BEFORE INSERT ON CRITERES_EVALUATION
FOR EACH ROW
BEGIN
IF :NEW.NUMERO IS NULL THEN
:NEW.NUMERO := SEQ_CRITERES_EVALUATION.NEXTVAL;
END IF;
END;
/