Проблемы в применении 3NF на ERD

Вот мой ERD:

ERD

Я попытался нормализовать этот ERD и ниже то, что я сделал до сих пор:

Country(CountryID{PK}, CountryName)
City (CityID{PK}, CityName, CountryID{FK})
Manager (username{PK}, password, ManagerName)
Airport (AirportID{PK}, AirportName, ICAO, IATA, ManagerUserName{FK}, CityID{FK})
Airline (AirlineID{PK}, AirlineName, IATA, ICAO)
AirportAirlineOffice (AirlineID{FK}, AirportID{FK}, Officeno) both FK = PK
Airplane (AirplaneID{PK}, Model, Make, AirlineID{FK}, AirportID{FK})

Я пытаюсь нормализовать до 3-й нормальной формы, поэтому в основном я пытаюсь достичь функциональной зависимости и удалить переходную зависимость. У меня есть несколько вопросов, которые меня смущают:

  1. В Таблице Самолетов Марка и Модель должны лежать как есть или должны быть перенесены в новую таблицу?
  2. В таблице аэропортов я должен перенести ICAO и IATA, идентификаторы кода, в новую таблицу?
  3. То же самое касается ИАТА и ИКАО в таблице авиакомпаний.
  4. И учитывая 3NF, требует ли таблица менеджеров каких-либо изменений?

С уважением

1 ответ

Решение

1. Нет проблем, если вы сохраните их (марка, модель) в этой таблице (самолет).

2 и 3. Если вы передадите эти идентификаторы кода, вам придется использовать FK, но если вы этого не сделаете, это не станет проблемой для 3NF.

4.Вы использовали ManagerID в таблице Airport, но в таблице Manager нет столбца с именем ManagerID. Таким образом, есть два варианта - (1) вы можете использовать имя пользователя в качестве внешнего ключа в таблице Airport или (2) в таблице Manager вы можете использовать ManagerID в качестве первичного ключа и имя пользователя в качестве уникального ключа.

Другие вопросы по тегам