CREATE TABLE Airport (
Airport_Code VARCHAR(220) PRIMARY KEY,
Airport_Name VARCHAR(220),
Airport_City VARCHAR(220),
Airport_State VARCHAR(220)
);
CREATE TABLE Airline_Flight (
Flight_No VARCHAR(10) PRIMARY KEY,
Airline VARCHAR(10)
);
CREATE TABLE Flight_Legs (
Leg_ID INT PRIMARY KEY,
Scheduled_DT DATETIME,
Scheduled_AT DATETIME,
Arrival_Airport VARCHAR(20),
Departure_Airport VARCHAR(20),
Airport_Code VARCHAR(10),
Flight_No VARCHAR(20),
Airplane_ID VARCHAR(20),
FOREIGN KEY (Airport_Code) REFERENCES Airport (Airport_Code) ON DELETE SET NULL,
FOREIGN KEY (Flight_No) REFERENCES Airline_Flight (Flight_No) ON DELETE SET NULL,
FOREIGN KEY (Airplane_ID) REFERENCES Airplane (Airplane_ID) ON DELETE SET NULL
);
CREATE TABLE Leg_Instance (
Leg_Instance_ID VARCHAR(20) PRIMARY KEY,
Date VARCHAR(200),
Actual_Departure_Airport VARCHAR(200),
Actual_Departure_Time VARCHAR(200),
Actual_Arrival_Time VARCHAR(100),
Actual_Arrival_Airport VARCHAR(200),
Airplane_Used VARCHAR(200),
Available_Seats INT,
Leg_ID INT,
Airport_Code VARCHAR(10),
FOREIGN KEY (Leg_ID) REFERENCES Flight_Legs (Leg_ID) ON DELETE SET NULL,
FOREIGN KEY (Airport_Code) REFERENCES Airport (Airport_Code) ON DELETE SET NULL
);
CREATE TABLE Reservation (
Reservation_ID VARCHAR(20) PRIMARY KEY,
Customer_Name VARCHAR(20),
Customer_Phone INT,
Leg_Instance_ID VARCHAR(20),
FOREIGN KEY (Leg_Instance_ID) REFERENCES Leg_Instance (Leg_Instance_ID) ON DELETE
SET NULL
);
CREATE TABLE Airplane_Type (
Type_Code VARCHAR(20) PRIMARY KEY,
Type_Name VARCHAR(20),
Manufacturing_Company VARCHAR(20),
Max_No_Of_Seats INT,
Landing_Airport VARCHAR (20)
);
CREATE TABLE Airplane (
Airplane_ID VARCHAR(20) PRIMARY KEY,
Airplane_Type VARCHAR(20),
Total_No_Of_Seats INT,
Type_Code VARCHAR(20),
FOREIGN KEY (Type_Code) REFERENCES Airplane_Type (Type_Code) ON DELETE SET NULL
);
CREATE TABLE Airport_Airplane_Type (
Airport_Code VARCHAR(20),
Airplane_Type VARCHAR(20),
PRIMARY KEY (Airport_Code, Airplane_Type),
FOREIGN KEY (Airport_Code) REFERENCES Airport (Airport_Code) ,
FOREIGN KEY (Airplane_Type) REFERENCES Airplane_Type (Type_Code)
);
CREATE TABLE Airline_Flight_Weekdays (
Flight_No VARCHAR(20),
Weekdays VARCHAR (20),
PRIMARY KEY (Flight_No, Weekdays),
FOREIGN KEY (Flight_No) REFERENCES Airline_Flight (Flight_No)
);
CREATE TABLE Reservation_Seat_No (
Reservation_ID VARCHAR(20),
Seat_Numbers VARCHAR (20),
PRIMARY KEY (Reservation_ID, Seat_Numbers),
FOREIGN KEY (Reservation_ID) REFERENCES Reservation (Reservation_ID)
);