码迷,mamicode.com
首页 > 数据库 > 详细

数据库的NULL值讨论

时间:2016-01-28 07:06:32      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

有许多关于数据库设计中NULL的讨论,我个人的设计习惯是,不使用NULL值。

我所设计所有表都是Not Null的字段的,尤其是我主要做数据仓库的表设计。刚开始使用数据库时,就栽了一次。一个Group里面,我要显示成年人有多少个,另外一个地方要显示未成年人有多少个,第三个地方要显示总人数。

N1(成年人数) = select count(*) from mygroup where age>=18; 结果是10

N2(未成年人) = select count(*) from mygorup where age< 18; 结果是12

到第三个地方,为了减少查询,我直接显示了 10+12 = 22 人。后来客户说不对呀,我们有23个人,想了半天才明白怎么回事,后来我经常拿这个考别人。

NULL使用起来很不方便。在各种编程语言中都支持这样的表达式 if(x==null) {...}. 但是在数据库理论中,null比较"奇怪"逻辑.

3 > null, 返回false;
3 < null, 返回false;
3 = null, 返回false.

为了配合数据库的NULL值机制,C#引入了nullable机制,比如:int? v1 = field("age").value; 否则如果age的值是null,无法赋值给v1.

数据库的NULL值讨论

标签:

原文地址:http://www.cnblogs.com/wangjiping/p/5165078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!