代码改变世界

关于数据库空字段和DEFAULT值等问题

2004-06-27 18:21  灵感之源  阅读(8172)  评论(40编辑  收藏  举报
刚才看了http://www.cnblogs.com/liukun966123/archive/2004/06/25/18570.aspx?Pending=true中说到空字段的问题,作了回复,感觉意尤未尽,为了确认我的想法,马上查了一下一些数据库设计书籍,其中一本《SQL SERVER 2000从入门到精通》里面提到:

DEFAULT限制:DEFAULT限制可以对任何表中的列提供缺省值,即新对象的该列没有指定数值时,这个限制会提供缺省值。DEFAULT限制可以对新记录提供合理值,从而帮助实现域完整性。DEFAULT限制还可以帮助实现用户定义完整性:例如,所有新客户可以从账户余额0开始。

其实,我学习数据库并没有上过任何正规的课程,都是从朋友身上学的,可以说是偷师,虽然我平时这样认为,这样设计数据库,不敢妄下结论,所以才找相关书籍印证。

实际上,我们应该保证数据的完整性,字段允许为空是一个下策,只有没有办法的情况下才使用,我建议大家一般都应该不允许为空,并添加缺省值。

毕竟,如果允许字段为空,那把判断为空等问题到带到代码中,如果多个地方判断,那得多写多少代码,而且还得为了应付Null而做额外的容错。