【问题标题】:What Normal Form would nullable Foreign Keys violate?可为空的外键违反什么范式?
【发布时间】:2012-08-17 08:50:39
【问题描述】:

一位同事向我解释说,可空外键在数据库设计中被认为是不好的做法,因为它违反了早期的正常形式之一。虽然我在学校上过基本的数据库课程,但我不认为范式被作为一个话题来讨论。讨论此主题的维基百科和其他网站使用学术术语,但我想更好地理解范式的这一方面,而不必上一堂课。

我知道not everybody feels nullable foreign keys are bad:这个问题并没有引发关于这个问题的辩论。相反,我想具体了解它们与范式主题的关系。可为空的外键违反了哪些范式,为什么?

【问题讨论】:

    标签: database database-design normalization


    【解决方案1】:

    我认为Erwin Smout 在您链接的问答中回答了这个问题。

    日期写在第 7 版。 数据库系统简介

    第一范式:一个relvar是1NF当且仅当,在每个合法的 该 relvar 的值,每个元组只包含一个值 属性。 (第 357 页)

    还有

    关于 null 的全部意义在于它们不是 价值观——重复一遍,它们是标记或标志。 (第 584 页)

    所以在 Date 看来,允许在任何列中为空的 relvar 不在 1NF 中。

    他的“缺失信息”一章有很多关于这个主题的内容。

    【讨论】:

      猜你喜欢
      • 2012-02-12
      • 2012-09-22
      • 2014-01-15
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多