考虑以下关系来说明我的问题:
Person( name, street, city, zipcode )
name -> street , city , zipcode
street + city -> zipcode
所以如果我们知道名字,我们也知道这个人住在哪里。但是邮政编码也(瞬态)依赖于街道+城市。因此,这种关系中断3NF
,应该分成两个表以符合要求。
但是在这种情况下,我们对将邮政编码作为一个单独的实体不感兴趣。它是地址的一部分,恰好是一个瞬态依赖。我们永远不会单独使用它。
我明白为什么标准化是一件好事。但是真的有必要总是规范化(从而使数据库更复杂)吗?如果没有,你怎么知道什么时候可以跳过?
(如果我的术语或符号有误,欢迎您纠正我)