为什么邮政编码值不应该放在博伊斯·科德范式中



有人可以向我解释为什么邮政编码不应该放在博伊斯·科德范式中吗?除了邮政编码在任何可预见的时间点不太可能改变之外,真的还有更多吗?

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

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

邮政编码

是一个属性,而BCNF是由一个关系或一组关系满足的属性。作为一般规则,目标是至少加入 BCNF,除非您有充分的理由偏离这一点。在此基础上,我建议与邮政编码属性的关系应该在 BCNF 中。是什么让你不这么认为?

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

最新更新