一般情况下,在程序中可以检测某些数据库字段是否为空,如果为空则提示相应的信息,不过既然这样的话,那为什么在设计数据库表的时候还要设定字段是否可以为空呢?

解决方案 »

  1.   

    在设置期把字段设置为not null,如果你试图插入空的字段时它会提示错误
      

  2.   

    可是我在程序中可以控制字段是否为空了,是不是如果可以控制字段不为空,则就可以不用再设计表的时候设置字段为not null.
      

  3.   

    to hnhb(不死鸟) 那如果知道哪些字段不能为空,在程序中控制它不让它为空,而在设计表的时候也可以设定它为允许为空????
      

  4.   

    这是一个涉及软件工程和程序设计方法的问题.通常会这样:设计数据库时,从实际情况来讲,数据库要求某些字段不应该为空,这些字段应该被设为not null,而对于其它的非关键数据,可以允许为空.比如:在设计一个简单的人事档案表进,假设有[员工编号],[姓名],[出生年月]...其它信息,那么,自然是[编号]作为关键字,但一般情况下,如果只有一个编号,而没有姓名,这条记录可能就是无用的数据(因为一般情况下,我们通常还是以姓名来确定某个员工),因此,这时我们就应该将[姓名]设为<not null>,而对于类似的[出生年月]来讲,某个员工的出生年月暂时不填,可能不会影响正常的工作,这时可以允许[出生年月]为空.为什么数据库管理系统可以检查数据的非空合法性,而仍然需要程序中进行检查呢?主要是因为现在的程序多数都是C/S,B/S模式的,为减轻数据库管理系统本身的负担和网络的负担,我们在提交数据前应尽可能合格证数据的合法性,同时,这也是良好的程序设计风格的一部分,自然的,这会增加程序设计的工作量.但实际上,有时,DBMS在报错时,可能会用英文信息,而我们的用户不一定都能清楚,所以,我们会尽量不使用DBMS的出错信息.
      

  5.   

    agree with volkia(MonkeyKing)
      

  6.   

    谢谢各位,觉得 volkia说得挺有道理的,谢谢vokkia。