这是我的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范式,所以基本上我试图实现功能依赖并删除过渡依赖。 我有一些令我困惑的问题:
此致
答案 0 :(得分:1)
1.如果您将这些(品牌,型号)保留在此表(飞机)中,则没有问题。
2& 3.如果您传输这些代码标识符,则必须使用FK,但如果不这样,则不会对3NF造成问题。
4.您在Airport表中使用了ManagerID,但Manager表中没有名为ManagerID的列。因此有两个选项 - (1)您可以在Airport表中使用username作为外键或(2)在Manager表中,您可以使用ManagerID作为主键,使用username作为唯一键。