【发布时间】:2010-12-20 01:02:33
【问题描述】:
我有几个关于在哪里处理空值的问题。让我设置一个场景。想象一下,我有一个包含 5 个 varchar(50) 列的表,在提供使用 null 或空字符串的原因时用作示例。
-
在代码中还是在数据库中处理 NULLS 更好?我的意思是,如果 varchar(50) 不包含任何值,最好将空字符串分配给它,还是将 null 分配给 varchar(50) 并在代码中处理该 null 更好?
李> 将空字符串分配给列会影响性能开销吗?
使用 null 与空字符串对索引有何影响?
我的印象是,如果您不允许数据库包含空值,则不必在代码中处理它。这个说法是真的吗?
在使用默认值时,除了 varchars 之外的其他数据类型是否会造成同样的问题,还是使用字符串数据类型时问题更大?
如果表包含空值,使用 ISNULL 函数的开销是多少?
还有哪些其他优点/缺点?
【问题讨论】:
-
我认为在您的问题 1) 中,您的“null”之一需要更改为“空字符串”。
-
在紧凑的框架上,我发现 ISNULL 速度慢到无法使用的地步。在桌面上,它既快速又方便。
-
为什么这是一个社区维基?对我来说,这似乎是一个非常有效的问题。
-
我把它做成了一个wiki,因为我认为你的数据库中是否有空字符串和空字符串可能是主观的,没有错误/正确的答案。
-
所有设计问题都是主观的,因为我们从来没有获得足够的具体信息来得出客观的答案;-)
标签: c# sql-server tsql database-design