博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
摘录关于数据库中null的一段说法
阅读量:5912 次
发布时间:2019-06-19

本文共 1105 字,大约阅读时间需要 3 分钟。

null的意思是“不知道”或者“不确定”。如果真是有意为之,那么一定是非常专业的。试想一下,如果这是一个疏忽,对于那些没经过自己测试也没有经过大量用户使用的系统也许说得过去,对于经过了大量用考验的系统一定在各个地方已经包括了对null的逻辑的特别判断和处理了。

因此,对于一个用户比较多、使用超过1年的系统,可以说null值得存在应该算是一种比较专业的设计,而不是疏忽的结果。
举个例子,你写设计一个用户注册系统,其中你要求用户输入生日。用户可以不可以不输?如果他不输,就应该是null,如果你给一个所谓的“默认值”则非常不专业(当你的系统是多人开发时你如何让每一段程序都仔细地判断到底是所得到的默认值还是用户实际输入的值?)。
默认值固然省事,但是大多数时候显得很不科学,本来这个值是“不知道”或者“不确定”或者“不想输入”,你可以在界面上非常生硬地给出默认值,否则还可以很专业地允许空值。那种不在界面明确警告给用户已经给了默认值的做法,如果往往让挑剔的用户觉得很不友好。

 

往往最复杂、最八股的设计就是拼凑书本上一大堆的流行模式,但是没有经过经过许多不同的挑剔用户、比较长一段商业运营检验的软件。

越是大的系统,越向初学者的那种简单直观的设计风格回归。所不同的是简单的形式下面其实它对细节更加全面恰当地设计过了,他有了比较完善的技术从而可以自由地体现最初“头脑风暴”所想到的一切需求。反倒是“中间阶段”的不成熟设计,过分强调技术而不强调需求。

对于null,有着一整套计算逻辑。例如null值与非null值得简单计算得到结果还是null值,在统计中则忽略,等等。SQL Server7中的null不完全符合逻辑,经过讨论之后在SQL Server2000中根据“不知道、不确定、不关心”的应有的逻辑计算概念进行了一些改变。可见null是SQL Server数据库中一个有意义的知识点,而不是简单的东西。

 

大师举的例子并不恰当...用户体验是一回事,数据完整性又是一回事...

以楼主的例子而言,我实在看不出“会员类型”和“是否通过验证”有可null的必要...反而允许null会带来不必要的验证和程序的隐患...

我的做法,对text, image等大家伙就允许null,其他不允许

为NULL的我都默认为0

我不需要NULL值,以前好像看过一篇报告说的是NULL值影响SQL性能

 

我们设计系统时尽量不出现允许null值,用默认值代替之,如果有null值,则要进行特殊处理!

转载于:https://www.cnblogs.com/ventry/archive/2012/11/07/2759541.html

你可能感兴趣的文章
CA ARCserve Backup系列(2)—安装代理(windows篇)
查看>>
[Unity3d for android]屏幕触摸事件
查看>>
pfx证书与cer证书的区别
查看>>
阿里云 云监控 安装和启动
查看>>
thrift实例:python实现
查看>>
Java源码解析 - ThreadPoolExecutor 线程池
查看>>
【unity实用技能】记一次失败的蓝图接口开发失败经验
查看>>
MySQL主从介绍 准备工作 配置主 配置从 测试主从同步
查看>>
javaweb项目部署
查看>>
go语言渐入佳境[11]-function2
查看>>
我与51CTO博客园的第一次
查看>>
angular1.x 性能优化
查看>>
SAP 联合忽米网、重庆高新区,共建「重庆中小企业智能化赋能中心」
查看>>
视频文件应该怎样进行无损压缩
查看>>
阿里云开发者工具上手体验
查看>>
基于MaxCompute打造轻盈的人人车移动端数据平台
查看>>
突然有一个时刻想过静静,我知道你是谁。
查看>>
第二周总结
查看>>
Dojo 表单校验
查看>>
如何让一个矩形外围为同一个数
查看>>