我知道从逻辑上讲,在某些情况下 NULL 值在数据库架构中有意义,例如,如果未指定某些值。也就是说,在代码中解决 DBNull 问题往往是一件非常痛苦的事情。例如,如果我正在渲染一个 View ,并且我想看到一个字符串,我希望没有任何值是空字符串,而不是“Null”,我讨厌围绕这种情况编写代码。
此外,它使查询更容易。诚然,您可以非常轻松地执行“foo is not null”,但对于初级 SQL 开发人员来说,不能使用“foo != null”是违反直觉的(是的,我知道关闭 ANSI null 的选项等,但这绝对不简单,而且我不喜欢偏离标准)。
在数据库模式中拥有/允许空值有什么好的理由?
最佳答案
允许 NULLS 的最重要原因是没有合理的选择。从逻辑上讲,NULL 值表示“未定义”。由于缺少 NULLS,您最终会尝试在结果未定义的地方指定一个“虚拟”值,然后您将不得不在所有应用程序逻辑中考虑上述“虚拟”值。
我写了一篇关于在数据库中包含 NULL 值的原因的博客文章。你可以找到它here .简而言之,我确实相信 NULL 值是数据库设计的一个组成部分,应该在适当的地方使用。
关于sql - 我应该在数据库模式中允许空值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965719/