联结表中的列是否应该能够存储空值?

问题描述:

当在sql中创建联接表以处理两个表之间的多对多关联时,联接表中的外键列是否应该能够存储空值?联结表中的列是否应该能够存储空值?

这样做不好,因为它不存储信息。

联结表是2个表之间的链接。如果存在记录,根据定义,它必须具有来自双方的id以形成“连接”链接。否则它不会提供有用的信息,并被称为waste-of-spaceTM

不。在您设计用于存储关系存在的表中存储表示缺少关系的行是没有意义的。

除了其他的答案:

两列引用其他表通常是结表的主键。因此,根据定义,它们不能为空。

在某些情况下,这些列不构成完整的主键(例如,当具有属性作为链接的一部分并允许具有不同属性的多个链接时) - 但该属性是PK的一部分。