一位同事向我解释说,在数据库设计中,可以为空的外键被认为是不好的做法,因为它违反了早期的正常形式之一。虽然我在学校上了一堂基础数据库课,但我不认为正规形式是讨论的主题。维基百科和其他讨论这个话题的网站使用学术术语,但我想更好地理解普通表单的这一方面,而不必上一整堂课。
我认识到这一点:这个问题并没有就这一问题展开辩论。相反,我想具体地了解它们是如何与正常形式的主题联系起来的。可空外键违反了哪些正常形式,为什么?

最佳答案

我认为Erwin Smout在你链接的问答中回答了这个问题。
Date在《数据库系统概论》的第7版写了这篇文章。
第一个标准形式:relvar是1nf if和only if,在每个合法的
relvar的值,每个元组只包含一个值
属性。(第357页)
还有
关于nulls的全部观点就是它们不是
值——它们是,重复,标记或标志。(临584)
所以在Date看来,允许任何列中为空的relvar不在1nf中。
他的“信息缺失”一章有很多关于这个话题的内容。

关于database - 可空的外键会违反哪种范式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12064516/

10-09 01:48