84 lines
2.4 KiB
SQL
84 lines
2.4 KiB
SQL
CREATE TABLE
|
|
agency (
|
|
agency_id INT NOT NULL,
|
|
agency_name TEXT NOT NULL,
|
|
agency_url TEXT NOT NULL,
|
|
agency_timezone TEXT NOT NULL,
|
|
agency_lang TEXT NOT NULL,
|
|
PRIMARY KEY (agency_id)
|
|
);
|
|
|
|
CREATE TABLE
|
|
calendar_dates (
|
|
service_id INT,
|
|
date TEXT,
|
|
exception_type INT
|
|
);
|
|
CREATE UNIQUE INDEX calendar_dates__by_service_id
|
|
ON calendar_dates (service_id, date);
|
|
CREATE UNIQUE INDEX calendar_dates__by_date
|
|
ON calendar_dates (date, service_id);
|
|
|
|
CREATE TABLE
|
|
stops (
|
|
stop_id INT NOT NULL,
|
|
stop_name TEXT NOT NULL,
|
|
stop_lat REAL NOT NULL,
|
|
stop_lon REAL NOT NULL,
|
|
location_type INT NOT NULL,
|
|
parent_station INT,
|
|
PRIMARY KEY (stop_id),
|
|
FOREIGN KEY (parent_station) REFERENCES stops (location_type)
|
|
);
|
|
CREATE INDEX stops__parent_station
|
|
ON stops (parent_station);
|
|
|
|
CREATE TABLE
|
|
routes (
|
|
route_id INT NOT NULL,
|
|
agency_id INT NOT NULL,
|
|
route_short_name TEXT NOT NULL,
|
|
route_long_name TEXT NOT NULL,
|
|
route_type INT NOT NULL,
|
|
route_color TEXT,
|
|
route_text_color TEXT,
|
|
PRIMARY KEY (route_id),
|
|
FOREIGN KEY (agency_id) REFERENCES agency (agency_id)
|
|
);
|
|
CREATE INDEX routes__by_agency_id
|
|
ON routes (agency_id);
|
|
|
|
CREATE TABLE
|
|
trips (
|
|
route_id INT NOT NULL,
|
|
service_id INT NOT NULL,
|
|
trip_id INT NOT NULL,
|
|
trip_headsign TEXT NOT NULL,
|
|
direction_id INT,
|
|
block_id INT NOT NULL,
|
|
PRIMARY KEY (trip_id),
|
|
FOREIGN KEY (route_id) REFERENCES routes (route_id),
|
|
FOREIGN KEY (service_id) REFERENCES calendar_dates (service_id)
|
|
);
|
|
CREATE INDEX trips__by_route_id
|
|
ON trips (route_id);
|
|
CREATE INDEX trips__by_service_id
|
|
ON trips (service_id);
|
|
|
|
CREATE TABLE
|
|
stop_times (
|
|
trip_id INT NOT NULL,
|
|
arrival_time TEXT NOT NULL,
|
|
departure_time TEXT NOT NULL,
|
|
stop_id INT NOT NULL,
|
|
stop_sequence INT NOT NULL,
|
|
pickup_type INT NOT NULL,
|
|
drop_off_type INT NOT NULL,
|
|
PRIMARY KEY (trip_id, stop_sequence),
|
|
FOREIGN KEY (trip_id) REFERENCES trips (trip_id),
|
|
FOREIGN KEY (stop_id) REFERENCES stops (stop_id)
|
|
);
|
|
CREATE INDEX stop_times__by_trip_id
|
|
ON stop_times (trip_id);
|
|
CREATE INDEX stop_times__by_stop_id
|
|
ON stop_times (stop_id); |