RelationalDesign: kreiranje.sql

File kreiranje.sql, 5.0 KB (added by 201094, 17 months ago)
Line 
1drop table if exists workers cascade;
2drop table if exists customers cascade;
3drop table if exists salaries cascade;
4drop table if exists films cascade;
5drop table if exists events cascade;
6drop table if exists users cascade;
7drop table if exists cinemas cascade;
8drop table if exists categories cascade;
9drop table if exists discounts cascade;
10drop table if exists seats cascade;
11drop table if exists projections cascade;
12drop table if exists projection_rooms cascade;
13drop table if exists tickets cascade;
14drop table if exists customer_rates_film cascade;
15drop table if exists cinema_plays_film cascade;
16drop table if exists cinema_organizes_event cascade;
17drop table if exists projection_is_played_in_room cascade;
18drop table if exists customer_is_interested_in_event cascade;
19drop table if exists work_hours_weekly cascade;
20drop schema if exists project cascade;
21
22create schema project;
23
24
25create table users(
26 ID_user serial primary key,
27 password varchar(200) not NULL,
28 first_name varchar(200) not null,
29 last_name varchar(200) not null,
30 address varchar(20000) not null,
31 contact_number varchar(20000) not null,
32 date_created date not null
33);
34create table cinemas(
35 ID_cinema serial primary key,
36 name varchar(200) not null,
37 location varchar(200) not null
38);
39create table workers(
40 ID_worker serial primary key references users(ID_user),
41 position varchar(200) not NULL,
42 work_hours_from varchar(200) not null,
43 work_hours_to varchar(200) not null,
44 ID_cinema integer references cinemas(ID_cinema) not null
45);
46
47create table customers(
48 ID_customer serial primary key references users(ID_User),
49 points integer
50);
51
52create table salaries(
53 ID_salary serial primary key,
54 sum integer not null,
55 date_from date not null,
56 date_to date,
57 ID_worker integer references workers(ID_worker) not null
58);
59create table films(
60 ID_film serial primary key,
61 name varchar(200) not null,
62 duration integer not null,
63 actors varchar(20000) not null,
64 genre varchar(2000) not null,
65 age_category varchar(2000) not null,
66 director varchar(2000) not null,
67 description varchar(20000),
68 start_date date not null,
69 end_date date not null
70);
71create table events(
72 ID_event serial primary key,
73 theme varchar(2000),
74 duration varchar(2000) not null,
75 repeating varchar(200),
76 start_date date not null
77);
78create table discounts(
79 ID_discount serial primary key,
80 validity date not null,
81 code varchar(2000) not null,
82 type varchar(2000),
83 percent integer not null
84);
85
86create table projections(
87 ID_projection serial primary key,
88 date_time_start date not null,
89 type_of_technology varchar(200) not null,
90 date_time_end date not null,
91 ID_film integer references films(ID_film) not null,
92 ID_discount integer references discounts(ID_discount),
93 ID_event integer references events(ID_event)
94 );
95create table projection_rooms(
96 ID_room serial primary key,
97 number_of_seats integer not null,
98 projection_room_number integer not null,
99 ID_cinema integer references cinemas(ID_cinema) not null
100);
101create table categories(
102 ID_category serial primary key,
103 name varchar(2000) not null,
104 extra_amount integer
105);
106
107create table seats(
108 ID_seat serial primary key,
109 seat_number integer not null,
110 ID_room integer references projection_rooms(ID_room) not null,
111 ID_category integer references categories(ID_category)
112);
113create table tickets(
114 ID_ticket serial primary key,
115 price bigint not null,
116 ID_customer integer references customers(ID_customer) not null,
117 date_reserved date not null,
118 ID_projection integer references projections(ID_projection) not null,
119 ID_discount integer references discounts(ID_discount),
120 ID_seat integer references seats(ID_seat) not null
121);
122
123create table customer_rates_film(
124ID_customer integer references customers(ID_customer) not null,
125ID_film integer references films(ID_film) not null,
126rating float not null,
127CONSTRAINT pk_customer_film PRIMARY KEY (ID_customer, ID_film)
128);
129
130create table cinema_plays_film(
131ID_cinema integer references cinemas(ID_cinema),
132ID_film integer references films(ID_film),
133CONSTRAINT pk_cinema_film PRIMARY KEY (ID_cinema, ID_film)
134);
135
136create table cinema_organizes_event(
137ID_cinema integer references cinemas(ID_cinema),
138ID_event integer references events(ID_event),
139CONSTRAINT pk_cinema_event PRIMARY KEY (ID_cinema,ID_event)
140);
141
142create table projection_is_played_in_room(
143ID_projection integer references projections(ID_projection),
144ID_room integer references projection_rooms(ID_room),
145CONSTRAINT pk_projection_room PRIMARY KEY (ID_projection,ID_room)
146);
147create table customer_is_interested_in_event(
148id_customer integer references customers(ID_customer),
149id_event integer references events(id_event),
150constraint ce_customer_event PRIMARY KEY (id_customer,id_event)
151);
152create table work_hours_weekly(
153id_work_hours serial primary key,
154id_worker integer references workers(id_worker) not null,
155week_number integer not null,
156year_num varchar(200) not null,
157hours_from timestamp not null,
158hours_to timestamp not null,
159check_in bool
160);