在将行插入数据库时,是否对使用默认值(如空字符串)有任何影响.使用null时必须检查它们在应用程序中使用数据时的问题,而默认值可以更容易处理.
我不同意使用默认值.null的目的是显示您没有信息.空字符串不代表,它是一个值.此外,如果您开始禁止字符串上的空值,则需要考虑其他数据类型.数字和日期很难有一个值,意思是"我没有这个字段的值." 如果你错误地在varchar字段中存储数字或日期,那么放置一个空字符串而不是null可能会导致查询无法在需要将它们转换为日期或数字等效时对其进行数学处理(不建议将日期和数字数据存储为字符串,只是认识到你可能已经有了一些,这个方案可能会导致它们被查询的问题.)如果除了这些字段之外你不允许所有的空值,你会做很多,在查询这些字段时会出现许多错误,因为您不会习惯于检查空值,而且更有可能忘记这样做.您也可以引发新的查询问题.考虑:
select count(myfield), myfield2 from mytable group by myfield2
如果您在不知道值时使用null或空字符串来存储值,则会产生不同的结果.
数据库中NULL的含义应保留为'unknown',这与empty不同.因此,只要您使用的默认值反映了基础数据的性质(即它不是'未知'),我实际上会建议使用默认值.
但是,您的里程可能会有所不同 这取决于您的应用程序.如果它以不同的方式处理未知值,那么一定要去:)