АВТ
Language:

Remote Training on Programming

Problems On-line status Contests FAQ
For authors:
Register  ||  Login
 
Hello, Guest! Login or register.

Схема данных БД "Автовокзал"

Особенности отправки SQL-запросов в проверяющую систему смотрите в FAQ.
В частности, всем вычисляемым полям необходимо явно давать имена длиной до 30 символов, например, так:
select min(price) as minpr from km_prices

Схема данных представлена на следующем рисунке:


  1. km_prices (расценки за километр)
    • class(класс автобуса)
    • price (цена за км для данного класса)
  2. models (марки или модели автобусов)
    • cod_model (код, суррогатный ключ)
    • name_model (название, атрибут носит справочный характер)
    • places (количество мест в автобусах данной марки)
    • class (класс комфортности)
  3. buses (автобусы)
    • cod_bus (код автобуса, возможно его инвентарный номер)
    • bus_number (номер ГИБДД, атрибут носит чисто справочный характер)
    • cod_model (марка автобуса, внешний ключ)
  4. points (населенные пункты)
    • cod_point (код, суррогатный ключ)
    • name_point (название)
    • distance (расстояние от пункта отправления)
  5. routes (маршруты)
    • cod_route (код, суррогатный ключ)
    • name_route (название маршрута)
  6. points_routes (связь между пунктами и маршрутами)
    • cod_point (код пункта, внешний ключ)
    • cod_route (код маршрута, внешний ключ)
  7. trips (рейсы)
    • cod_trip (код рейса, суррогатный ключ)
    • week_day (день недели)
    • hour (часы)
    • minute (минуты)
    • cod_route (код маршрута)
    • cod_bus (код автобуса, назначенного на данный рейс)
    • tickets (количество проданных билетов)

Некоторые пояснения.

Пункты и маршруты имеют связь "Многие-ко-Многим" (через каждый пункт может проходить несколько маршрутов и каждый маршрут имеет несколько остановок). Для этого служит таблица-связка points_routes.

Сущность trips (рейсы) связывает сущности Маршруты и Автобусы, дополняя их такими важными атрибутами как время отправления. Здесь же фиксируется и количество проданных билетов на каждый рейс (после отправления рейса поле обнуляется).

Дни недели в trips - числа от 1 до 7, где 1 - понедельник, 2 - вторник и т.д.

Номера и марки автобусов, названия маршрутов, названия населенных пунктов уникальны

Допустимо наличие маршрутов, не используемых ни в одном рейсе. Могут быть населённые пункты, не используемые ни в одном маршруте, маршруты, в которые ещё не включены никакие пункты, автобусы, не задействованные ни в одном рейсе. Аналогично, в базе может содержаться марка автобуса, но не быть ни одного автобуса такой марки.

We can all benefit by doing occasional "toy" programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit. The art of tackling miniproblems with all our energy will sharpen our talents for the real problems. Donald E. Knuth.
time generating 0.031 sec.
© Copyright VSTU, AVT, Nosov D.A.