11
Рейсы
Flights
рейс выполняется по расписанию из одного аэропорта в другой
естественный ключ — номер рейса и дата отправления,
но используется суррогатный ключ
flight_id идентификатор рейса
flight_no номер рейса
scheduled_departure/arrival вылет и прилет по расписанию
actual_departure/arrival фактический вылет и прилет
departure/arrival_airport аэропорты отправления и прибытия
status статус рейса
aircraft_code код самолета
Рейс соединяет аэропорты вылета и прибытия. Такое понятие, как
«рейс с пересадками» отсутствует: если нет прямого рейса, в билет
просто включаются несколько рейсов.
Столбец | Тип | Модификаторы | Описание
---------------------+-------------+--------------+----------------------------
flight_id | serial | not null | Идентификатор рейса
flight_no | char(6) | not null | Номер рейса
scheduled_departure | timestamptz | not null | Время вылета по расписанию
scheduled_arrival | timestamptz | not null | Время прилёта по расписанию
departure_airport | char(3) | not null | Аэропорт отправления
arrival_airport | char(3) | not null | Аэропорт прибытия
status | varchar(20) | not null | Статус рейса
aircraft_code | char(3) | not null | Код самолета, IATA
actual_departure | timestamptz | | Фактическое время вылета
actual_arrival | timestamptz | | Фактическое время прилёта
Индексы:
PRIMARY KEY, btree (flight_id)
UNIQUE CONSTRAINT, btree (flight_no, scheduled_departure)
Ограничения-проверки:
CHECK (scheduled_arrival > scheduled_departure)
CHECK ((actual_arrival IS NULL)
OR ((actual_departure IS NOT NULL AND actual_arrival IS NOT NULL)
AND (actual_arrival > actual_departure)))
CHECK (status IN ('On Time', 'Delayed', 'Departed',
'Arrived', 'Scheduled', 'Cancelled'))
Ограничения внешнего ключа:
FOREIGN KEY (aircraft_code) REFERENCES aircrafts(aircraft_code)
FOREIGN KEY (arrival_airport) REFERENCES airports(airport_code)
FOREIGN KEY (departure_airport) REFERENCES airports(airport_code)