Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет80/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   76   77   78   79   80   81   82   83   ...   243
Байланысты:
Язык SQL. Базовый курс

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). Его особенность в том, что эти дан-
ные могут иметь некоторую структуру, но при этом создавать дополнительные атри-
буты в таблице нецелесообразно. С такими данными — их называют полуструктури-
рованными — PostgreSQL хорошо умеет работать: для них предусмотрены типы json
и jsonb. В нашей таблице используется тип jsonb и вот почему: хотя ввод данных та-
кого типа несколько замедляется из-за необходимости выполнения разбора данных,
84


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


Достарыңызбен бөлісу:
1   ...   76   77   78   79   80   81   82   83   ...   243




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

    Басты бет