第三范式 (3NF)

Ray*_*ian 0 database database-design third-normal-form database-normalization

我有这两张桌子。

桌子

如果我确定它们位于 3NF 中,这是正确的方法吗?我的答案:

StaffDetails( StaffID , SName, DOB, DivisionNo*)
Division( DivisionNo , DivName, DivSupervisorID)
StaffProject( StaffId *, ProjectNo *, SName, ProjectName, HoursAssigned)
项目(项目编号, 项目名称)

主键是粗体的,但是星号后面的原因是什么?

MT0*_*MT0 7

不,它并不完全是 3NF,正如您在表中复制的SName那样。StaffProjectStaffProject

这些表可能应该是:

员工详情

柱子 数据类型 约束条件
员工详情 VARCHAR2 首要的关键
S名称 VARCHAR2
出生日期 日期
部门编号 INT 外键(部门)

分配

柱子 数据类型 约束条件
部门编号 INT 首要的关键
分区名称 VARCHAR2 (可能是独一无二的)
DivSupervisorID VARCHAR2 外键(员工详细信息)

员工项目

柱子 数据类型 约束条件
员工ID VARCHAR2 复合主键、外键(StaffDetails)
项目编号 VARCHAR2 复合主键、外键(项目)
分配的时间 数字 检查 > 0

项目

柱子 数据类型 约束条件
项目编号 INT 首要的关键
项目名 VARCHAR2 (可能是独一无二的)

至于你的符号问题,这是你的导师似乎正在使用的惯例,但不一定是全球认可的,所以你最好问他们;然而,主键似乎带有下划线,而外键旁边有一个星号。

StaffProject将具有既是复合主键又是外键的一部分的列,因此将具有两种表示法。