请问一般情况下是在程序中控制数据库字段不为空,还是在数据库设计的时候的时候控制字段不为空呢? 一般情况下,在程序中可以检测某些数据库字段是否为空,如果为空则提示相应的信息,不过既然这样的话,那为什么在设计数据库表的时候还要设定字段是否可以为空呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在设置期把字段设置为not null,如果你试图插入空的字段时它会提示错误 可是我在程序中可以控制字段是否为空了,是不是如果可以控制字段不为空,则就可以不用再设计表的时候设置字段为not null. to hnhb(不死鸟) 那如果知道哪些字段不能为空,在程序中控制它不让它为空,而在设计表的时候也可以设定它为允许为空???? 这是一个涉及软件工程和程序设计方法的问题.通常会这样:设计数据库时,从实际情况来讲,数据库要求某些字段不应该为空,这些字段应该被设为not null,而对于其它的非关键数据,可以允许为空.比如:在设计一个简单的人事档案表进,假设有[员工编号],[姓名],[出生年月]...其它信息,那么,自然是[编号]作为关键字,但一般情况下,如果只有一个编号,而没有姓名,这条记录可能就是无用的数据(因为一般情况下,我们通常还是以姓名来确定某个员工),因此,这时我们就应该将[姓名]设为<not null>,而对于类似的[出生年月]来讲,某个员工的出生年月暂时不填,可能不会影响正常的工作,这时可以允许[出生年月]为空.为什么数据库管理系统可以检查数据的非空合法性,而仍然需要程序中进行检查呢?主要是因为现在的程序多数都是C/S,B/S模式的,为减轻数据库管理系统本身的负担和网络的负担,我们在提交数据前应尽可能合格证数据的合法性,同时,这也是良好的程序设计风格的一部分,自然的,这会增加程序设计的工作量.但实际上,有时,DBMS在报错时,可能会用英文信息,而我们的用户不一定都能清楚,所以,我们会尽量不使用DBMS的出错信息. agree with volkia(MonkeyKing) 谢谢各位,觉得 volkia说得挺有道理的,谢谢vokkia。 delphi的递归调用是不是要注意什么? 如何与其它软件做登陆接口? 我有一个继承问题请教????谢谢!!! 软件的演示最好做成什么类型的?急切盼望各位大侠的回复!急、、、、、 [讨论]使用ACTION比CLOSE安全? 谁能解决Flash.OCX(V1.0)的不足? 关于查询内存泄露的软件... 5000多分没地方用了,心里没底,大伙瞧瞧 为什么用close不能完全关闭程序,程序占用的资源为什么不能释放完全。 如何调用dll 请教高手 的QReport 横向打印 只能看到左边的一半 请问:var,type,function,procedure,public,private 这些都是什么意思? 有什么作用?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货