2017-05-11 35 views
0

我需要将模型DB降低到3NF。然而,数据中有一列很含糊。转换为3NF

所以数据库有以下几列。 (道歉的格式,我也尝试)

 
Employer ID | ContractNo | Hours | emp Name | workNo | workLocation 
--  
123   | A1   | 10 | J Smith | W36 | New York 
124   | A1   | 7  | P Jones | W36 | New York 
125   | A2   | 9  | R Lewis | W37 | Los Angeles 
123   | A2   | 9  | J Smith | W37 | Los Angeles 

每个员工都有一个唯一的ID,员工可以在1个多地方工作,每个单元都有一个唯一的workNo。我只是有点卡在哪里包括ContractNo。在问题实际上是什么没有迹象。

因此,我的第一步是将其拆分成EmployerID,员工姓名和工作时间表。另外还有WorkNo,WorkLocation。但是,我对那个血腥的ContractNo做了什么?

+2

在可以标准化关系之前,首先标识并列出应用的功能依赖关系。 – reaanb

+1

您使用什么参考进行标准化?你的问题与知道什么是标准化是不一致的。 – philipxy

+0

是第一列“雇主ID”还是“员工ID”? –

回答

0

我预计合同可能是一个单独的实体,捕捉承包商和被承包商之间关系的性质。

enter image description here

图片来自QuickDBD,我工作的地方。

+1

规范化为更高级的NFs会替换其他预测它并加入其中的表。它不会引入新的列。 – philipxy

+0

非常真实!我介绍了新的列以在小模式中建立命名标准,特别是对于密钥。我不能忍受使用'emp名称'作为主键例如:)很抱歉,如果分心从我的主要观点:介绍合同表。 – TrevorJ

+1

问题是关于归一化到3NF,并且这个答案(如问题)并不反映这是什么的理解。请参阅有关问题的评论。 – philipxy