Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет88/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   84   85   86   87   88   89   90   91   ...   256
sql osnovi yazika

CREATE TABLE tickets
( ticket_no
char( 13 )
NOT NULL, -- Номер билета
book_ref
char( 6 )
NOT NULL, -- Номер бронирования
passenger_id
varchar( 20 ) NOT NULL, -- Идентификатор пассажира
passenger_name text
NOT NULL, -- Имя пассажира
contact_data
jsonb,
-- Контактные данные пассажира
PRIMARY KEY ( ticket_no ),
FOREIGN KEY ( book_ref )
REFERENCES bookings ( book_ref )
);
Информация о всех перелетах хранится в таблице «Перелеты» (ticket_flights).
Перелет — это перемещение конкретного пассажира из одного города в другой на
конкретном авиарейсе. Перелеты вписываются в электронные билеты, при этом
в каждый электронный билет может быть вписано более одного перелета. Поэтому
первичным ключом будет комбинация двух атрибутов: «Номер билета» (ticket_no)
и «Идентификатор рейса» (flight_id).
С каждым перелетом связан класс обслуживания, значения этого атрибута подлежат
проверке с помощью ограничения CHECK. Точно такое же ограничение есть и в таб-
лице «Места» (seats), в которой каждому месту в салоне конкретного типа самолета
присваивается определенный класс обслуживания.
Атрибут «Стоимость перелета» (amount) требует использования типа данных numer-
ic, поскольку, как мы уже говорили ранее, денежные суммы должны записываться
с определенной точностью, а гарантировать ее может только тип данных numeric.
Число цифр после запятой принимается равным двум.
Оба атрибута, составляющих первичный ключ, в свою очередь, сами являются внеш-
ними ключами.
113


Глава 5. Основы языка определения данных
CREATE TABLE ticket_flights
( ticket_no
char( 13 )


Достарыңызбен бөлісу:
1   ...   84   85   86   87   88   89   90   91   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет