68 lines
1.9 KiB
MySQL
68 lines
1.9 KiB
MySQL
|
PRAGMA foreign_keys = OFF;
|
||
|
|
||
|
-- Drop the tables if they exist
|
||
|
DROP TABLE IF EXISTS Reservations;
|
||
|
DROP TABLE IF EXISTS Shows;
|
||
|
DROP TABLE IF EXISTS Movies;
|
||
|
DROP TABLE IF EXISTS Theaters;
|
||
|
DROP TABLE IF EXISTS Users;
|
||
|
|
||
|
PRAGMA foreign_keys = ON;
|
||
|
|
||
|
-- Create the Users table
|
||
|
CREATE TABLE
|
||
|
IF NOT EXISTS Users (
|
||
|
username VARCHAR(50) PRIMARY KEY,
|
||
|
name VARCHAR(100) NOT NULL,
|
||
|
address VARCHAR(200),
|
||
|
telephone VARCHAR(20) NOT NULL
|
||
|
);
|
||
|
|
||
|
-- Create the Theaters table
|
||
|
CREATE TABLE
|
||
|
IF NOT EXISTS Theaters (
|
||
|
theater_id INTEGER PRIMARY KEY,
|
||
|
name VARCHAR(100) NOT NULL,
|
||
|
seats INTEGER NOT NULL
|
||
|
);
|
||
|
|
||
|
-- Create the Movies table
|
||
|
CREATE TABLE
|
||
|
IF NOT EXISTS Movies (
|
||
|
movie_id INTEGER PRIMARY KEY,
|
||
|
name VARCHAR(100) NOT NULL
|
||
|
);
|
||
|
|
||
|
-- Create the Shows table
|
||
|
CREATE TABLE
|
||
|
IF NOT EXISTS Shows (
|
||
|
show_id INTEGER PRIMARY KEY,
|
||
|
movie_id INTEGER NOT NULL,
|
||
|
theater_id INTEGER NOT NULL,
|
||
|
show_date DATE NOT NULL,
|
||
|
FOREIGN KEY (movie_id) REFERENCES Movies (movie_id),
|
||
|
FOREIGN KEY (theater_id) REFERENCES Theaters (theater_id)
|
||
|
);
|
||
|
|
||
|
-- Create the Reservations table
|
||
|
CREATE TABLE
|
||
|
IF NOT EXISTS Reservations (
|
||
|
reservation_id INTEGER PRIMARY KEY,
|
||
|
username VARCHAR(50) NOT NULL,
|
||
|
show_id INTEGER NOT NULL,
|
||
|
reservation_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
|
FOREIGN KEY (username) REFERENCES Users (username),
|
||
|
FOREIGN KEY (show_id) REFERENCES Shows (show_id)
|
||
|
);
|
||
|
|
||
|
-- Index for Users table
|
||
|
CREATE INDEX IF NOT EXISTS idx_users_username ON Users (username);
|
||
|
|
||
|
-- Index for Shows table
|
||
|
CREATE INDEX IF NOT EXISTS idx_shows_movie_id ON Shows (movie_id);
|
||
|
CREATE INDEX IF NOT EXISTS idx_shows_theater_id ON Shows (theater_id);
|
||
|
|
||
|
-- Index for Reservations table
|
||
|
CREATE INDEX IF NOT EXISTS idx_reservations_username ON Reservations (username);
|
||
|
CREATE INDEX IF NOT EXISTS idx_reservations_show_id ON Reservations (show_id);
|