一位同事向我解释说,Nullable Foreign Keys被认为是数据库设计中的不良做法,因为它违反了早期正常形式之一。虽然我在学校学习了基础数据库课程,但我并不认为正常形式是作为主题讨论的。维基百科和讨论该主题的其他网站使用学术术语,但我想更好地理解正常形式的这一方面,而不必对它们进行整体课程。
我认识到not everybody feels nullable foreign keys are bad:这个问题并没有就此问题展开辩论。相反,我想具体了解它们与正常形式主题的关系。可以为空的外键违反哪些普通表单?为什么?
答案 0 :(得分:2)
我认为Erwin Smout在您关联的问答中回答了这个问题。
Date在第7版中写道。 数据库系统简介。
第一范式:当且仅在每个合法的情况下,relvar在1NF中 该relvar的值,每个元组只包含一个值 属性。 (第357页)
还
关于零点的全部观点正是它们不是 值 - 它们重复标记或标记。 (第584页)
所以在Date看来,任何列中允许空值的relvar都不在1NF中。
他的章节“缺少信息”有很多关于这个话题。