为什么zipcode值不能放在Boyce Codd Normal Form中?

时间:2013-09-05 16:18:44

标签: database database-design normalization database-normalization denormalization

有人可以向我解释为什么不应该将邮政编码放在Boyce Codd Normal Form中吗?除了拉链码在任何可预见的时间点都不太可能改变之外,还有其他的吗?

3 个答案:

答案 0 :(得分:3)

如果您打算根据它们查找其他信息(例如区域设置),则只应将邮政编码放在3NF或BCNF中。在这种情况下,邮政编码成为“自然的关键”。

没有这种背景,似乎没有多大意义。在大多数应用程序中,邮政编码仅被视为一些文本,否则没有任何上下文含义。

答案 1 :(得分:3)

Zipcode是一个属性,而BCNF是 relation 或一组关系所满足的属性。作为一般规则,除非并且直到您有充分的理由偏离它,否则目标是至少在BCNF。在此基础上,我建议与zipcode属性的关系应该在BCNF中。是什么让你想到的呢?

答案 2 :(得分:-1)

假设你在谈论2NF,而不是3NF和BCNF之间的细微差别,(因为zipcodes似乎与BCNF无关),那么:
是的,以及它不必要地钝的事实,只保存一个字节的存储空间(zipcodes是5个字符,可以存储在5个字节中,整数外键是4个字节),并且需要额外的连接来检索值。