Семантическое значение и связь элементов схемы данных
Помогите, пожалуйста, разобраться со схемой данных на рисунке
ВОПРОСЫ
- Разница между
TicketиTicketFlies - Можно ли выделять подчинение между таблицами, если да то в каком порядке они подчиняются?
- Разница
T.TotalAmount,TF.Amount TF.SeatNumberиAC.SeatsNumberT.TicketNumberиTF.TicketNumberBoardingNumber- номер посадки (имеется ввиду самолета перед полетом или что-то иное?)FareConditions- условия тарифа (приведите, пожалуйста, пример)?
Ответы (1 шт):
Для того, чтобы разобраться в структуре в первую очередь необходимо постараться все перевести. Обычно, чтобы упростить сопровождение разработчики дают осмысленные названия полям и таблицам. Правда, часто используются сокращения и профессиональные термины, поэтому хорошо бы иметь опыт в области.
Даже простой перевод названий таблиц практически отвечает на все ваши вопросы: Полеты (Flights), Билеты (Tickets), Летящие (TicketsFlies), Судна (AirCraft), Аэропорты (Airports).
Ticketsэто все проданные билеты, если вы не опоздали на самолет и полетели, то попадаете в таблицуTicketsFlies.Подчинение таблиц непростая штука и о порядке говорить сложно. Таблицы могут ссылать по кругу, саму на себя, дважды на одну, короче любые варианты. Опять же при анализе надо найти одинаковые (похожие) столбцы они будут ключами. В представленном случае это поля с постфиксом
ID,Code,Number(например,FlightId,AirCraft,TicketNumber).Вот тут я не очень понял (как раз надо знание предметной области)
T.TotalAmount- это стоимость проданного билета, возможно со всеми накрутками,TF.Amount- может реальная стоимость полета.TF.SeatNumber- номер места пассажира, иAC.SeatsNumber- количество мест в самолете.T.TicketNumberиTF.TicketNumberэти поля имеют одинаковые значения и как раз обеспечивают подчинение (см. ответ 2).BoardingNumber- посадочный номер, номер регистрации билета пассажира.FareConditions- условия тарифа это специальная кодировка услуг и их стоимость, которые закладываются авиакомпанией.
Ключи в структуре (PK - Primary key, FK - foreign key), желтое данные.
Flights.FlightId(PK) ->TicketsFlies.FlightId(FK)Tickets.TicketNumber(PK) ->TicketsFlies.TicketNumber(FK)AirCraft.AirCraftCode(PK) ->Flights.AirCraftCode(FK)Airports.AirportCode(PK) ->Flights.DepartureAirport(FK)Airports.AirportCode(PK) ->Flights.ArivalAirport(FK)Airports.AirportCode(PK) ->Flights.ActualDeparture(FK)

