Урок 1. Архитектура, средства и языки разработки
9. Учебная схема для работы с sql
Схема для практики и упражнений состоит из набора данных для недавно созданного загородного клуба с перечнем участников. Данные содержат:
- Участников клуба
- Теннисные корты (объекты)
- Историю бронирования этих объектов
- Внимание:
-
- Не воспринимайте набор как пример хорошего дизайна. Этот набор данных разработан исключительно для поддержки упражнений. Схема базы данных имеет ряд недостатков.
Схема:
-- Участники CREATE TABLE cd.members ( --Идентификатор --memid = 0 служебная запись, для всех гостей memid integer NOT NULL, --Фамилия surname character varying(200) NOT NULL, --Имя firstname character varying(200) NOT NULL, --Адрес address character varying(300) NOT NULL, --Почтовый код zipcode integer NOT NULL, --Телефон telephone character varying(20) NOT NULL, --memid участника который рекомендовал текущего участника recommendedby integer, --Дата вступления joindate timestamp NOT NULL, CONSTRAINT members_pk PRIMARY KEY (memid), CONSTRAINT fk_members_recommendedby FOREIGN KEY (recommendedby) REFERENCES cd.members(memid) ON DELETE SET NULL ); -- Объекты CREATE TABLE cd.facilities ( --Идентификатор facid integer NOT NULL, --Наименование name character varying(100) NOT NULL, --Стоимость слота(bookings.slots) для участника membercost numeric NOT NULL, --Стоимость слота(bookings.slots) для гостя( memid = 0 ) guestcost numeric NOT NULL, --Первоначальные затраты initialoutlay numeric NOT NULL, --Затраты на ежемесячное обслуживание monthlymaintenance numeric NOT NULL, CONSTRAINT facilities_pk PRIMARY KEY (facid) ); -- История заказов CREATE TABLE cd.bookings ( --Идентификатор bookid integer NOT NULL, --Ссылка на объекты facid integer NOT NULL, --Ссылка на участников memid integer NOT NULL, --Время начала использования объекта starttime timestamp NOT NULL, --Интервал использования объекта, выражается слотами, 1 слот - полчаса slots integer NOT NULL, CONSTRAINT bookings_pk PRIMARY KEY (bookid), CONSTRAINT fk_bookings_facid FOREIGN KEY (facid) REFERENCES cd.facilities(facid), CONSTRAINT fk_bookings_memid FOREIGN KEY (memid) REFERENCES cd.members(memid) );