合并或分开表格

时间:2012-11-03 00:03:40

标签: mysql sql database schema normalization

我很困惑我是否应该合并两张桌子或将它们分开。 ff只是我的一个问题:

tblPhone(Phone_ID, Phone_Number, Phone_Type_ID, Person_ID)
tblPhone(Phone_Type_ID, Phone_Type_Name)

我应该简单地说:

tblPhone(Phone_ID, Phone_Number, Phone_Type_Name, Person_ID)

是否有优势?是否有类似标准指南或练习来创建表格?例如,我记得有人告诉我,如果一张桌子不是3或更多,只需将它合并到另一张桌子上,就像这样......这是真的吗?我记得一些规范化规则......但有时它可能会非常混乱。我认为这属于第三个规范化规则,这就是为什么它们应该分开,我错了吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这是正确的,这说明了第三种正常形式。

您正在将Phone_Type_Name标准化为tblPhone(我们假设您的意思是调用第二个tblPhoneType)。这是正确的,也是一种常见做法。即使您现在只有tblPhoneType中的两列,最终您可能需要将其展开以包含与手机类型相关的其他属性,这是说明为什么要对其进行规范化的最简单方法。

可能的未来场景(需要更多列):

现在通过规范化,你可以保护自己免受这种情况的影响:

tblPhone(Phone_Type_ID, Phone_Type_Name, Phone_Type_Min_Price, Phone_Type_Max_Price)