Advertisement
Guest User

Tables

a guest
Jan 23rd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE TABLE STATIONS (
  2.   ID INT PRIMARY KEY,
  3.   NAME VARCHAR(255) NOT NULL
  4. );
  5.  
  6. CREATE TABLE ROUTES (
  7.   ID INTEGER,
  8.   STATION_ID INTEGER REFERENCES STATIONS(ID),
  9.   ORDER_NUMBER INTEGER NOT NULL,
  10.   PRIMARY KEY (ID, STATION_ID)
  11. );
  12.  
  13. CREATE TABLE TRANSITS (
  14.   TRAIN_ID INTEGER,
  15.   ROUTE_ID INTEGER,
  16.   STATR_STATION INTEGER,
  17.   FINISH_STATION INTEGER,
  18.   ORDER_NUMBER INTEGER,
  19.   PRIMARY KEY (ID, ROUTE_ID)
  20. );
  21.  
  22. CREATE TABLE CREWS (
  23.   ID INTEGER PRIMARY KEY,
  24.   HEADSTATION_ID INTEGER NOT NULL REFERENCES STATIONS(ID)
  25. );
  26.  
  27. CREATE TABLE CREW_MEMBERS (
  28.   CREW_ID INTEGER REFERENCES CREWS(ID),
  29.   EMPLOYEE_LASTNAME VARCHAR(255),
  30.   EMPLOYEE_POST VARCHAR(255),
  31.   PRIMARY KEY (CREW_ID, EMPLOYEE_LASTNAME)
  32. );
  33.  
  34. CREATE TABLE TRAINS(
  35.   ID INTEGER,
  36.   ROUTE_ID INTEGER NOT NULL,
  37.   CREW_ID INTEGER NOT NULL REFERENCES CREWS(ID),
  38.   TYPE VARCHAR(255) NOT NULL CHECK (TYPE IN ('1st class', '2nd class', '3rd class', 'common')),
  39.   PRIMARY KEY (ID)
  40. );
  41.  
  42. CREATE TABLE TRIPS (
  43.   ID INTEGER PRIMARY KEY,
  44.   TICKETS_QUANTITY INTEGER,
  45.   TRAIN_ID INTEGER REFERENCES TRAINS(ID)
  46. );
  47.  
  48. CREATE TABLE TIMETABLE (
  49.   TRIP_ID INTEGER REFERENCES TRIPS(ID),
  50.   STATION_NUMBER INTEGER NOT NULL,
  51.   ARRIVAL_TIME TIMESTAMP NOT NULL,
  52.   DEPARTURE_TIME TIMESTAMP NOT NULL,
  53.   PASSENGERS_CHANGE INTEGER,
  54.   TRANSIT_PASSENGERS_CHANGE INTEGER,
  55.   PRIMARY KEY (TRIP_ID, STATION_NUMBER)
  56. );
  57.  
  58. CREATE TABLE DELAYS (
  59.   TRIP_ID INTEGER,
  60.   STATION_NUMBER INTEGER NOT NULL,
  61.   DELAY INTEGER,  --IN MINUTES
  62.   PRIMARY KEY (TRIP_ID, STATION_NUMBER),
  63.   FOREIGN KEY (TRIP_ID, STATION_NUMBER) REFERENCES TIMETABLE (TRIP_ID, STATION_NUMBER)
  64. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement