首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >3NF在ERD中应用的几个问题

3NF在ERD中应用的几个问题
EN

Stack Overflow用户
提问于 2014-05-18 17:59:40
回答 1查看 1.4K关注 0票数 0

这是我的ERD:

我试图使这个ERD正常化,以下是我迄今所做的工作:

代码语言:javascript
运行
复制
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})

我试图正常化到第三范式,所以基本上我试图实现功能依赖和消除过渡依赖。我有些问题让我很困惑:

  1. 在飞机表中,Make和Model应该按原样存在,还是应该转移到新的表中?
  2. 在机场表中,我是否应该将国际民航组织和空运协会的代码标识符转移到新的表中?
  3. 空运协会和民航组织在航空桌上的情况也是如此。
  4. 考虑到3NF,manager表是否需要任何更改?

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-18 19:07:00

1.如果你把这些(制造,型号)放在这个表(飞机)里,那就没问题了。

2&3.如果您传输这些代码标识符,您将不得不使用FK,但如果您不使用,这将不会是一个问题的3NF。

4.您在机场表中使用了ManagerID,但是Manager表中没有名为ManagerID的列。因此有两个选项- (1)您可以在机场表中使用用户名作为外键,或者(2)在Manager表中,您可以使用ManagerID作为主键和用户名作为惟一键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23725152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档