C# · 12月 31, 2021

c# – 应该在代码中还是在数据库中处理NULLS?的优点和缺点?

我有几个关于何处理空值的问题.让我建立一个场景.想象一下,当提供使用空值或空字符串的原因时,我有一个包含5个varchar(50)列的表作为示例.

>在代码或数据库中处理NULLS会更好吗?我的意思是,如果一个空字符串没有包含任何值,或者将它赋给varchar(50)并在代码中处理null,最好将它分配给varchar(50)更好吗?
>为列分配空字符串是否会影响性能开销?
>使用null与空字符串如何影响索引?
>我的印象是,如果您不允许数据库包含空值,则不必在代码中处理它.这个陈述是真的吗?
>使用默认值时,除varchars之外的其他数据类型是否会产生相同的问题,或者字符串数据类型是否存在问题?
>如果表包含空值,使用ISNULL函数的开销是多少?
>还有什么其他优点/缺点?

解决方法 我的一般建议是将数据库中的字段声明为NOT NULL,除非您特别需要允许空值,因为对于刚接触数据库的人来说,它们往往非常困难.

请注意,空字符串和空字符串字段不一定意味着相同的事情(除非您将它们定义为).通常null表示“未知”或“未提供”,而空字符串就是提供的已知空字符串.

允许或禁止空字段完全取决于您的需求.