微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库设计 – 为什么我们不允许NULL?

我记得读过这篇关于数据库设计的文章,我还记得它说你应该有NOT NULL的字段属性.我不记得为什么会这样.

我可以想到的是,作为应用程序开发人员,您不必测试NULL和可能不存在的数据值(例如,字符串的空字符串).

但是,对于日期,日期时间和时间(sql Server 2008),您会怎么做?你必须使用一些历史或最低限度的日期.

有什么想法吗?

解决方法

我认为这个问题措辞不当,因为措辞意味着你已经确定NULL很糟糕.也许你的意思是“我们应该允许NULL吗?”

无论如何,这是我的看法:我认为NULL是一件好事.当你因为“NULL不好”或“NULL很难”而开始阻止NULL时,就会开始编写数据.例如,如果你不知道我的出生日期怎么办?在你知道之前,你打算把什么放在专栏中?如果你有很多反对空的人,你将进入1900-01-01.现在我将被安置在老年病房,可能会接到我当地新闻台的电话,祝贺我的长寿,告诉我生活这么长寿的秘密等等.

如果可以输入一行而你可能不知道列的值,我认为NULL比选择一些任意标记值来表示它是未知的事实更有意义 – 其他人将会必须已经知道,逆向工程,或询问周围的问题.

但是有一个平衡 – 数据模型中的每一列都不应该是可空的.表单上通常有可选字段,或者在创建行时不会收集的信息.但这并不意味着您可以推迟填充所有数据.

原文地址:https://www.jb51.cc/mssql/80071.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐