· 5 years ago · Mar 12, 2020, 05:32 PM
1CREATE SEQUENCE public.hibernate_sequence INCREMENT 1 START 1 MINVALUE 1;
2
3CREATE TABLE IF NOT EXISTS reservations
4(
5 id BIGINT PRIMARY KEY,
6 first_name VARCHAR(30) NOT NULL,
7 last_name VARCHAR(30) NOT NULL,
8 expire_time timestamp NOT NULL
9);
10
11CREATE TABLE IF NOT EXISTS rooms
12(
13 id BIGINT PRIMARY KEY,
14 room_name VARCHAR(30) NOT NULL
15);
16
17CREATE TABLE IF NOT EXISTS screenings
18(
19 id BIGINT PRIMARY KEY,
20 movie_title VARCHAR(30) NOT NULL,
21 screening_time TIMESTAMP NOT NULL,
22 room_id BIGINT REFERENCES rooms (id) NOT NULL,
23 ticket_price NUMERIC(15, 2) NOT NULL
24);
25
26CREATE TABLE IF NOT EXISTS seats
27(
28 seat_number INTEGER NOT NULL,
29 row_number INTEGER NOT NULL,
30 screening_id BIGINT REFERENCES screenings (id) NOT NULL,
31 PRIMARY KEY (seat_number, row_number)
32);
33
34CREATE TABLE IF NOT EXISTS reserved_seats
35(
36 seat_number BIGINT REFERENCES seats (seat_number) NOT NULL,
37 row_number BIGINT REFERENCES seats (row_number) NOT NULL,
38 reservation_id BIGINT REFERENCES reservations (id) NOT NULL,
39 room_id BIGINT REFERENCES rooms (id) NOT NULL,
40 FOREIGN KEY (seat_number, row_number) REFERENCES seats (seat_number, row_number),
41 PRIMARY KEY (seat_number, row_number)
42);
43
44
45CREATE INDEX idx_row_id_seat_number ON seats (seat_number, row_number)