Семантическое значение и связь элементов схемы данных

Помогите, пожалуйста, разобраться со схемой данных на рисунке

ВОПРОСЫ

  1. Разница между Ticket и TicketFlies
  2. Можно ли выделять подчинение между таблицами, если да то в каком порядке они подчиняются?
  3. Разница T.TotalAmount, TF.Amount
  4. TF.SeatNumber и AC.SeatsNumber
  5. T.TicketNumber и TF.TicketNumber
  6. BoardingNumber - номер посадки (имеется ввиду самолета перед полетом или что-то иное?)
  7. FareConditions - условия тарифа (приведите, пожалуйста, пример)?

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Alex R.

Для того, чтобы разобраться в структуре в первую очередь необходимо постараться все перевести. Обычно, чтобы упростить сопровождение разработчики дают осмысленные названия полям и таблицам. Правда, часто используются сокращения и профессиональные термины, поэтому хорошо бы иметь опыт в области.

Даже простой перевод названий таблиц практически отвечает на все ваши вопросы: Полеты (Flights), Билеты (Tickets), Летящие (TicketsFlies), Судна (AirCraft), Аэропорты (Airports).

  1. Tickets это все проданные билеты, если вы не опоздали на самолет и полетели, то попадаете в таблицу TicketsFlies.

  2. Подчинение таблиц непростая штука и о порядке говорить сложно. Таблицы могут ссылать по кругу, саму на себя, дважды на одну, короче любые варианты. Опять же при анализе надо найти одинаковые (похожие) столбцы они будут ключами. В представленном случае это поля с постфиксом ID, Code, Number (например, FlightId, AirCraft, TicketNumber).

  3. Вот тут я не очень понял (как раз надо знание предметной области) T.TotalAmount - это стоимость проданного билета, возможно со всеми накрутками, TF.Amount - может реальная стоимость полета.

  4. TF.SeatNumber - номер места пассажира, и AC.SeatsNumber - количество мест в самолете.

  5. T.TicketNumber и TF.TicketNumber эти поля имеют одинаковые значения и как раз обеспечивают подчинение (см. ответ 2).

  6. BoardingNumber - посадочный номер, номер регистрации билета пассажира.

  7. FareConditions - условия тарифа это специальная кодировка услуг и их стоимость, которые закладываются авиакомпанией.

Ключи в структуре (PK - Primary key, FK - foreign key), желтое данные.

  1. Flights.FlightId (PK) -> TicketsFlies.FlightId (FK)
  2. Tickets.TicketNumber (PK) -> TicketsFlies.TicketNumber (FK)
  3. AirCraft.AirCraftCode (PK) -> Flights.AirCraftCode (FK)
  4. Airports.AirportCode (PK) -> Flights.DepartureAirport (FK)
  5. Airports.AirportCode (PK) -> Flights.ArivalAirport (FK)
  6. Airports.AirportCode (PK) -> Flights.ActualDeparture (FK)

введите сюда описание изображения

→ Ссылка