Faza2: R-DIAGRAM DDL FULL.txt

File R-DIAGRAM DDL FULL.txt, 9.6 KB (added by 231042, 8 days ago)
Line 
1CREATE TABLE Address (
2 address_id SERIAL NOT NULL,
3 street varchar(255) NOT NULL,
4 street_number int4 NOT NULL,
5 PRIMARY KEY (address_id),
6 CHECK (street_number > 0)
7);
8
9CREATE TABLE City (
10 city_id SERIAL NOT NULL,
11 city_name varchar(255) NOT NULL,
12 zip_code int4 NOT NULL UNIQUE,
13 PRIMARY KEY (city_id),
14 CHECK (zip_code > 0)
15);
16
17CREATE TABLE Section (
18 section_id SERIAL NOT NULL,
19 section_name varchar(255) NOT NULL,
20 section_price int4 NOT NULL,
21 PRIMARY KEY (section_id),
22 CHECK (section_price >= 0)
23);
24
25CREATE TABLE Organizer (
26 organizer_id SERIAL NOT NULL,
27 organizer_name varchar(255) NOT NULL,
28 contact int4 NOT NULL UNIQUE,
29 PRIMARY KEY (organizer_id)
30);
31
32CREATE TABLE Refund (
33 refund_id SERIAL NOT NULL,
34 refund_amount int4 NOT NULL ,
35 refund_date date NOT NULL,
36 reason varchar(255),
37 PRIMARY KEY (refund_id),
38 CHECK (refund_amount >= 0)
39);
40
41CREATE TABLE User (
42 user_id SERIAL NOT NULL,
43 first_name varchar(255) NOT NULL DEFAULT 'Anonymous',
44 last_name varchar(255) NOT NULL DEFAULT 'Anonymous',
45 username varchar(255) NOT NULL UNIQUE DEFAULT 'Anonymous',
46 email varchar(255) NOT NULL UNIQUE,
47 password varchar(255) NOT NULL,
48 PRIMARY KEY (user_id),
49
50 CONSTRAINT email_check CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$')
51);
52CREATE TABLE Performer (
53 pefromer_id SERIAL NOT NULL,
54 genre varchar(255) NOT NULL,
55 performer_name varchar(255) NOT NULL,
56 date_of_birth date NOT NULL,
57 PRIMARY KEY (pefromer_id),
58 CHECK (age > 0)
59);
60
61CREATE TABLE Sponsor (
62 sponsor_id SERIAL NOT NULL,
63 sponsor_amount int4 NOT NULL ,
64 sponsor_name varchar(255) NOT NULL,
65 PRIMARY KEY (sponsor_id),
66 CHECK (sponsor_amount > 0)
67);
68
69CREATE TABLE Venue (
70 venue_id SERIAL NOT NULL,
71 venue_name varchar(255) NOT NULL,
72 capacity int4 NOT NULL,
73 City_city_id int4 NOT NULL,
74 Address_address_id int4 NOT NULL,
75 PRIMARY KEY (venue_id),
76 CONSTRAINT FKVenueCity FOREIGN KEY (City_city_id) REFERENCES City (city_id) ON DELETE CASCADE ON UPDATE CASCADE,
77 CONSTRAINT FKVenueAddress FOREIGN KEY (Address_address_id) REFERENCES Address (address_id) ON DELETE CASCADE ON UPDATE CASCADE,
78CHECK (capacity > 0)
79);
80
81CREATE TABLE Discount (
82 discount_id SERIAL NOT NULL,
83 "percent" int4 CHECK ("percent" >= 0 AND "percent" <= 100),
84 Section_section_id varchar(255) NOT NULL,
85 Sectionsection_id int4 NOT NULL,
86 PRIMARY KEY (discount_id),
87 CONSTRAINT FKDiscountSection FOREIGN KEY (Sectionsection_id) REFERENCES Section (section_id) ON DELETE CASCADE ON UPDATE CASCADE
88);
89
90CREATE TABLE User_verification (
91 user_verification_id SERIAL NOT NULL,
92 status varchar(255) NOT NULL,
93 verification_date date NOT NULL UNIQUE,
94 User_user_id int4 NOT NULL,
95 PRIMARY KEY (user_verification_id),
96 CONSTRAINT FKUser_verifUser FOREIGN KEY (User_user_id) REFERENCES User (user_id) ON DELETE SET DEFAULT ON UPDATE CASCADE
97);
98
99CREATE TABLE Organizer_Venue (
100 Organizer_organizer_id int4 NOT NULL,
101 Venue_venue_id int4 NOT NULL,
102 PRIMARY KEY (Organizer_organizer_id, Venue_venue_id),
103 CONSTRAINT FKOrgVenue_Org FOREIGN KEY (Organizer_organizer_id) REFERENCES Organizer (organizer_id) ON DELETE CASCADE ON UPDATE CASCADE,
104 CONSTRAINT FKOrgVenue_Venue FOREIGN KEY (Venue_venue_id) REFERENCES Venue (venue_id) ON DELETE CASCADE ON UPDATE CASCADE
105);
106
107CREATE TABLE Parking (
108 parking_id SERIAL NOT NULL,
109 capacity int4 NOT NULL CHECK (capacity > 0),
110 availability int4 NOT NULL CHECK (availability >= 0 AND availability <= capacity),
111 reservation varchar(255),
112 Venue_venue_id int4 NOT NULL,
113 PRIMARY KEY (parking_id),
114 CONSTRAINT FKParkingVenue FOREIGN KEY (Venue_venue_id) REFERENCES Venue (venue_id) ON DELETE CASCADE ON UPDATE CASCADE
115);
116
117CREATE TABLE Payment (
118 payment_id SERIAL NOT NULL,
119 payment_type varchar(255) NOT NULL,
120 amount int4 NOT NULL CHECK (amount >= 0),
121 Discount_discount_id int4 NOT NULL,
122 Refund_refund_id int4 NOT NULL,
123 PRIMARY KEY (payment_id),
124 CONSTRAINT FKPaymentDiscount FOREIGN KEY (Discount_discount_id) REFERENCES Discount (discount_id) ON DELETE SET NULL ON UPDATE CASCADE,
125 CONSTRAINT FKPaymentRefund FOREIGN KEY (Refund_refund_id) REFERENCES Refund (refund_id) ON DELETE SET NULL ON UPDATE CASCADE
126);
127
128CREATE TABLE Event (
129 event_id SERIAL NOT NULL,
130 title varchar(255) NOT NULL,
131 description varchar(255),
132 "date" date NOT NULL CHECK ("date" >= CURRENT_DATE),
133 event_type varchar(255) NOT NULL,
134 Organizer_organizer_id int4 NOT NULL,
135 Venue_venue_id int4 NOT NULL,
136 PRIMARY KEY (event_id),
137 CONSTRAINT FKEventOrganizer FOREIGN KEY (Organizer_organizer_id) REFERENCES Organizer (organizer_id) ON DELETE CASCADE ON UPDATE CASCADE,
138 CONSTRAINT FKEventVenue FOREIGN KEY (Venue_venue_id) REFERENCES Venue (venue_id) ON DELETE CASCADE ON UPDATE CASCADE
139);
140
141CREATE TABLE Setlist (
142 setlist_id SERIAL NOT NULL,
143 songs varchar(255) NOT NULL,
144 songs_duration int4 NOT NULL CHECK (songs_duration > 0),
145 Performer_pefromer_id int4 NOT NULL,
146 PRIMARY KEY (setlist_id),
147 CONSTRAINT FKSetlistPerformer FOREIGN KEY (Performer_pefromer_id) REFERENCES Performer (pefromer_id) ON DELETE CASCADE ON UPDATE CASCADE
148);
149
150CREATE TABLE Media (
151 media_id SERIAL NOT NULL,
152 media_type varchar(255) NOT NULL,
153 url varchar(255) NOT NULL UNIQUE,
154 Event_event_id int4 NOT NULL,
155 PRIMARY KEY (media_id),
156 CONSTRAINT FKMediaEvent FOREIGN KEY (Event_event_id) REFERENCES Event (event_id) ON DELETE CASCADE ON UPDATE CASCADE
157);
158
159CREATE TABLE Staff (
160 staff_id SERIAL NOT NULL,
161 staff_name varchar(255) NOT NULL,
162 staff_surname varchar(255) NOT NULL,
163 role varchar(255) NOT NULL,
164 phone int4 NOT NULL UNIQUE,
165 experience varchar(255) NOT NULL,
166 Event_event_id int4 NOT NULL,
167 PRIMARY KEY (staff_id),
168 CONSTRAINT FKStaffEvent FOREIGN KEY (Event_event_id) REFERENCES Event (event_id) ON DELETE CASCADE ON UPDATE CASCADE
169);
170
171CREATE TABLE Performance (
172 performance_id SERIAL NOT NULL,
173 start_time int4 NOT NULL,
174 end_time int4 NOT NULL CHECK (end_time > start_time),
175 Event_event_id int4 NOT NULL,
176 PRIMARY KEY (performance_id),
177 CONSTRAINT FKPerformanceEvent FOREIGN KEY (Event_event_id) REFERENCES Event (event_id) ON DELETE CASCADE ON UPDATE CASCADE
178);
179
180CREATE TABLE Sponsor_Event (
181 Sponsor_sponsor_id int4 NOT NULL,
182 Event_event_id int4 NOT NULL,
183 PRIMARY KEY (Sponsor_sponsor_id, Event_event_id),
184 CONSTRAINT FKSponsor_Ev_Sponsor FOREIGN KEY (Sponsor_sponsor_id) REFERENCES Sponsor (sponsor_id) ON DELETE CASCADE ON UPDATE CASCADE,
185 CONSTRAINT FKSponsor_Ev_Event FOREIGN KEY (Event_event_id) REFERENCES Event (event_id) ON DELETE CASCADE ON UPDATE CASCADE
186);
187
188CREATE TABLE Review (
189 review_id SERIAL NOT NULL,
190 feedback varchar(255),
191 grade int4 CHECK (grade BETWEEN 1 AND 10),
192 User_user_id int4 NOT NULL,
193 Event_event_id int4 NOT NULL,
194 PRIMARY KEY (review_id),
195 CONSTRAINT FKReviewUser FOREIGN KEY (User_user_id) REFERENCES User (user_id) ON DELETE SET DEFAULT ON UPDATE CASCADE,
196 CONSTRAINT FKReviewEvent FOREIGN KEY (Event_event_id) REFERENCES Event (event_id) ON DELETE SET DEFAULT ON UPDATE CASCADE
197);
198
199CREATE TABLE Reservation (
200 reservation_id SERIAL NOT NULL,
201 reservation_time varchar(255) NOT NULL,
202 status varchar(255) NOT NULL,
203 User_user_id int4 NOT NULL,
204 Payment_payment_id int4 NOT NULL,
205 PRIMARY KEY (reservation_id),
206 CONSTRAINT FKReservatioUser FOREIGN KEY (User_user_id) REFERENCES User (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
207 CONSTRAINT FKReservatioPayment FOREIGN KEY (Payment_payment_id) REFERENCES Payment (payment_id) ON DELETE CASCADE ON UPDATE CASCADE
208);
209
210CREATE TABLE Performer_Performance (
211 Performer_pefromer_id int4 NOT NULL,
212 Performance_performance_id int4 NOT NULL,
213 PRIMARY KEY (Performer_pefromer_id, Performance_performance_id),
214 CONSTRAINT FKPerfPerf_Performer FOREIGN KEY (Performer_pefromer_id) REFERENCES Performer (pefromer_id) ON DELETE CASCADE ON UPDATE CASCADE,
215 CONSTRAINT FKPerfPerf_Performance FOREIGN KEY (Performance_performance_id) REFERENCES Performance (performance_id) ON DELETE CASCADE ON UPDATE CASCADE
216);
217
218CREATE TABLE Ticket (
219 ticket_id SERIAL NOT NULL,
220 serial_number int4 NOT NULL UNIQUE,
221 is_used int4 NOT NULL CHECK (is_used IN (0, 1)),
222 price int4 NOT NULL CHECK (price > 0),
223 qr_code varchar(255) NOT NULL UNIQUE,
224 Event_event_id int4 NOT NULL,
225 Reservation_reservation_id int4 NOT NULL,
226 Refund_refund_id int4 NOT NULL,
227 Section_section_id int4 NOT NULL,
228 PRIMARY KEY (ticket_id),
229 CONSTRAINT FKTicketEvent FOREIGN KEY (Event_event_id) REFERENCES Event (event_id) ON DELETE CASCADE ON UPDATE CASCADE,
230 CONSTRAINT FKTicketReservation FOREIGN KEY (Reservation_reservation_id) REFERENCES Reservation (reservation_id) ON DELETE CASCADE ON UPDATE CASCADE,
231 CONSTRAINT FKTicketRefund FOREIGN KEY (Refund_refund_id) REFERENCES Refund (refund_id) ON DELETE SET DEFAULT ON UPDATE CASCADE,
232 CONSTRAINT FKTicketSection FOREIGN KEY (Section_section_id) REFERENCES Section (section_id) ON DELETE CASCADE ON UPDATE CASCADE
233);