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



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

CREATE TABLE bookings
( book_ref
char( 6 )
NOT NULL, -- Номер бронирования
book_date
timestamptz
NOT NULL, -- Дата бронирования
total_amount numeric( 10, 2 ) NOT NULL, -- Полная стоимость бронирования
PRIMARY KEY ( book_ref )
);
С таблицей «Бронирования» (bookings) по внешнему ключу связана таблица «Биле-
ты» (
tickets).
В качестве первичного ключа в ней служит атрибут «Номер билета» (ticket_no).
Хотя уникальные тринадцатизначные номера билетов — числовые, но в них могут
присутствовать лидирующие нули, поэтому числовой тип данных здесь не годится,
а приходится использовать тип character (сокращенно — char).
В качестве идентификатора пассажира будет использоваться номер документа, удо-
стоверяющего личность, а номера таких документов могут содержать, например,
лидирующие нули, поэтому атрибут «Идентификатор пассажира» (passenger_id)
будет не числовым, а символьным — varchar.
Атрибут «Имя пассажира» (passenger_name) содержит имя и фамилию пассажира,
записанные заглавными латинскими буквами, а вот отчество не используется. Тип
данных, конечно, text.
Очень интересный атрибут «Контактные данные пассажира» (contact_data). Его
особенность в том, что эти данные могут иметь некоторую структуру, но при этом со-
здавать дополнительные атрибуты в таблице нецелесообразно. С такими данными —
112


5.2. Создание и удаление таблиц
их называют слабоструктурированными — PostgreSQL хорошо умеет работать: для
них предусмотрены типы json и jsonb. В нашей таблице используется тип jsonb
и вот почему: хотя ввод данных такого типа несколько замедляется из-за необходи-
мости выполнения разбора данных, но этот разбор выполняется однократно, только
при вводе, а последующая обработка уже разобранных данных ускоряется. Подробно
типы json и jsonb рассмотрены в главе 4.
Внешним ключом в таблице будет атрибут «Номер бронирования» (book_ref), по-
скольку в рамках каждой процедуры бронирования может быть оформлено более од-
ного билета.


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




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

    Басты бет