RelationalDesign : DDL.sql

File DDL.sql, 6.8 KB (added by 181006, 15 months ago)
Line 
1/*
2drop table project.artist_acts_theatre;
3drop table project.artist_exhibits_gallery;
4drop table project.admins;
5drop table project.artist;
6drop table project.customer;
7drop table project.organizer;
8drop table project.ticket;
9drop table project.seat;
10drop table project.transactions;
11drop table project.review;
12drop table project.cart;
13drop table project.gallery;
14drop table project.theatre;
15drop table project.museum;
16drop table project.events;
17drop table project.users;
18*/
19
20
21create table project.users
22(
23 id_user serial4 primary key,
24 username varchar(50) not null,
25 email varchar(50) not null,
26 surname varchar(50) not null,
27 "name" varchar(50) not null,
28 phone_number varchar(50) not null,
29 "password" bpchar(40) not null
30);
31
32
33create table project.artist
34(
35 id_user integer primary key,
36 type_of_artist varchar(50) not null,
37 id_user_admin integer,
38 constraint fk_user_artist foreign key (id_user) references project.users (id_user)
39 on delete cascade on update cascade,
40 constraint fk_user_artist_admin foreign key (id_user_admin) references project.users (id_user)
41 on delete cascade on update cascade
42);
43
44
45create table project.admins
46(
47 id_user integer primary key,
48 constraint fk_user_admin foreign key (id_user) references project.users (id_user)
49 on delete cascade on update cascade
50);
51
52
53create table project.organizer
54(
55 id_user integer primary key,
56 constraint fk_user_organizer foreign key (id_user) references project.users (id_user)
57 on delete cascade on update cascade
58);
59
60
61create table project.customer
62(
63 id_user integer primary key,
64 transaction_account varchar(50) not null,
65 constraint fk_user_customer foreign key (id_user) references project.users (id_user)
66 on delete cascade on update cascade
67);
68
69
70create table project.events
71(
72 id_event serial4 primary key,
73 "name" varchar(50) not null,
74 price integer not null,
75 city varchar(50) not null,
76 "date" timestamp not null,
77 phone_number varchar(20) not null,
78 id_user_artist integer,
79 id_user_organizer integer,
80 constraint fk_user_artist foreign key (id_user_artist) references project.users (id_user)
81 on delete cascade on update cascade,
82 constraint fk_user_organizer foreign key (id_user_organizer) references project.users (id_user)
83 on delete cascade on update cascade
84);
85
86
87create table project.gallery
88(
89 id_event integer primary key,
90 style varchar(50) not null,
91 constraint fk_gallery_event foreign key (id_event) references project.events (id_event)
92 on delete cascade on update cascade
93);
94
95
96create table project.theatre
97(
98 id_event integer primary key,
99 director varchar(50) not null,
100 genre varchar(50) not null,
101 duration integer not null,
102 constraint fk_theatre_event foreign key (id_event) references project.events (id_event)
103 on delete cascade on update cascade
104);
105
106
107create table project.museum
108(
109 id_event integer primary key,
110 history varchar(500) not null,
111 department varchar(50) not null,
112 workshop varchar(100),
113 constraint fk_museum_event foreign key (id_event) references project.events (id_event)
114 on delete cascade on update cascade
115);
116
117
118create table project.review
119(
120 id_review serial4 primary key,
121 "content" varchar(500) not null,
122 rating integer not null,
123 created_at timestamp not null,
124 id_user_artist integer,
125 id_user_customer integer,
126 constraint fk_user_artist_review foreign key (id_user_artist) references project.users (id_user)
127 on delete cascade on update cascade,
128 constraint fk_user_customer_review foreign key (id_user_customer) references project.users (id_user)
129 on delete cascade on update cascade
130);
131
132
133create table project.seat
134(
135 id_event integer,
136 id_seat serial4 primary key,
137 "number" integer not null,
138 constraint fk_seat_event foreign key (id_event) references project.events (id_event)
139 on delete cascade on update cascade
140);
141
142
143create table project.cart
144(
145 id_user_customer integer,
146 id_cart serial4 primary key,
147 total integer not null,
148 constraint fk_user_customer foreign key (id_user_customer) references project.users (id_user)
149 on delete cascade on update cascade
150);
151
152
153create table project.transactions
154(
155 id_transaction serial4 primary key,
156 id_invoice serial4 not null,
157 edited_at timestamp not null,
158 "name" varchar(50) not null,
159 created_at timestamp not null,
160 id_user_customer integer,
161 id_cart integer,
162 constraint fk_transaction_cart foreign key (id_cart) references project.cart (id_cart)
163 on delete cascade on update cascade
164);
165
166
167create table project.ticket
168(
169 id_ticket serial4 primary key,
170 price integer not null,
171 "date" timestamp not null,
172 "location" varchar(50) not null,
173 type_of_event varchar(50) not null,
174 id_event integer,
175 id_user_customer integer,
176 id_seat integer,
177 id_cart integer,
178 constraint fk_ticket_event foreign key (id_event) references project.events (id_event)
179 on delete cascade on update cascade,
180 constraint fk_ticket_customer foreign key (id_user_customer) references project.users (id_user)
181 on delete cascade on update cascade,
182 constraint fk_ticket_seat foreign key (id_seat) references project.seat (id_seat)
183 on delete cascade on update cascade,
184 constraint fk_ticket_cart foreign key (id_cart) references project.cart (id_cart)
185 on delete cascade on update cascade
186);
187
188
189create table project.artist_exhibits_gallery
190(
191 id_event_gallery integer,
192 id_user_artist integer,
193 constraint fk_artist_event_gallery foreign key (id_event_gallery) references project.events (id_event)
194 on delete cascade on update cascade,
195 constraint fk_artist_user_gallery foreign key (id_user_artist) references project.users (id_user)
196 on delete cascade on update cascade,
197 constraint pk_artist_exhibits_gallery primary key (id_event_gallery, id_user_artist)
198);
199
200
201create table project.artist_acts_theatre
202(
203 id_event_theatre integer,
204 id_user_artist integer,
205 constraint fk_artist_event_theatre foreign key (id_event_theatre) references project.events (id_event)
206 on delete cascade on update cascade,
207 constraint fk_artist_acts_user foreign key (id_user_artist) references project.users (id_user)
208 on delete cascade on update cascade,
209 constraint pk_artist_acts_theatre primary key (id_event_theatre, id_user_artist)
210);