2010-01-14 32 views
1

数据我有具有以下字段的表:归一化:在单排两个coloumns需要从同一个表

Assignedto和completedby

这些字段引用雇员表。

我只是想知道这是正常化还是我错过了什么。

感谢

+1

你的文章没有什么意义。请扩大并澄清。 2个表格,其中一个具有以下字段,然后是第三个员工表格?没有意义。 –

+0

你可以包含表格的模式吗?包括一些“创建表”语句将消除很多歧义。 –

回答

3

是的,这是罚款(和适当的),以表中有多个列是一个外键到另一个表。你的情况是一个很好的例子...

实际上有很多的例子 - 客户表可以有一个邮寄地址和一个传递地址,它们都指向一个地址表..一个联系表可以有一个HomePhone,WorkPhone,Fax和Mobile列都指向电话表(尽管还有其他更好的方法可以做到这一点)

+0

(+1)编辑此问题以适应此答案 - 这是正确且最有可能的答案。 –

0

注意:我会将第二个表格称为“Stuff”不知道还有什么可以称之为的。

这是3NF如果AssignedTo和CompletedBy字段都是Employee表的外键。如果您真的想要规范化,可以使用第三个表StuffCompletion,它具有标识列和这两个值,并将您的Stuff表中的这两个值用外键替换为StuffCompletion。我认为大多数人会认为这种矫枉过正,而模式神可能会毁灭你。

+0

哈哈抱歉,这有点含糊,但这就是我的意思。我正在考虑'stuffcompletion'(已完成的工作订单)表,但即时通讯仍然像一个程序员那样想着它会很痛苦地编写代码:) –

+0

只是给了你告诉我的我不会那么做;将这两个领域分成另一个表格可能不会给你带来太多收益,除非你有3名员工从事数万个工作。 – iandisme

相关问题