-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathschema.sql
More file actions
36 lines (33 loc) · 1.16 KB
/
schema.sql
File metadata and controls
36 lines (33 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CREATE TABLE "passengers" (
"id" INTEGER,
"first_name" TEXT NOT NULL,
"last_name" TEXT NOT NULL,
"age" INTEGER NOT NULL CHECK("age" > 0),
PRIMARY KEY("id")
);
CREATE TABLE "airlines" (
"id" INTEGER,
"name" TEXT NOT NULL UNIQUE,
"concourse" TEXT NOT NULL CHECK("concourse" IN ('A', 'B', 'C', 'D', 'E', 'F', 'T')),
PRIMARY KEY("id")
);
CREATE TABLE "flights" (
"id" INTEGER,
"number" INTEGER NOT NULL,
"airline_id" INTEGER,
"from_airport_code" TEXT NOT NULL CHECK("from_airport_code" != "to_airport_code"),
"to_airport_code" TEXT NOT NULL CHECK("to_airport_code" != "from_airport_code"),
"departure_time" NUMERIC NOT NULL CHECK("departure_time" < "arrival_time"),
"arrival_time" NUMERIC NOT NULL CHECK("arrival_time" > "departure_time"),
PRIMARY KEY("id"),
FOREIGN KEY("airline_id") REFERENCES "airlines"("id")
);
CREATE TABLE "check_ins" (
"id" INTEGER,
"passenger_id" INTEGER,
"flight_id" INTEGER,
"datetime" NUMERIC NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY("id"),
FOREIGN KEY("passenger_id") REFERENCES "passengers"("id"),
FOREIGN KEY("flight_id") REFERENCES "flights"("id")
);