Xai*_*oft 6 c# t-sql sql-server database-design
我有几个关于何处理空值的问题.让我建立一个场景.想象一下,当提供使用空值或空字符串的原因时,我有一个包含5个varchar(50)列的表作为示例.
在代码或数据库中处理NULLS更好吗?我的意思是,如果一个空字符串没有包含任何值,或者将它赋给varchar(50)并在代码中处理null,最好将它分配给varchar(50)更好吗?
为列分配空字符串是否会影响性能开销?
使用null与空字符串如何影响索引?
我的印象是,如果您不允许数据库包含空值,则不必在代码中处理它.这个陈述是真的吗?
除了varchars之外的其他数据类型在使用默认值时是否会产生相同的问题,或者对于字符串数据类型是否更有问题?
如果表包含空值,使用ISNULL函数的开销是多少?
还有什么其他优点/缺点?
我的一般建议是在数据库中声明字段,NOT NULL除非您特别需要允许null值,因为对于刚接触数据库的人来说,它们往往很难处理.
请注意,空字符串和空字符串字段不一定意味着相同的事情(除非您将它们定义为).通常null表示"未知"或"未提供",而空字符串就是提供的已知空字符串.
允许或禁止null字段完全取决于您的需求.