加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2021-01-12 05:12:05 所属栏目:编程 来源:网络整理
导读:我记得读过这篇关于数据库设计的文章,我还记得它说你应该有NOT NULL的字段属性.我不记得为什么会这样. 我可以想到的是,作为应用程序开发人员,您不必测试NULL和可能不存在的数据值(例如,字符串的空字符串). 但是,对于日期,日期时间和时间(SQL Server 2008),您

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

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

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

有什么想法吗?

解决方法

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

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

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

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

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读