假设您有一个应用程序,该应用程序的表中有一个布尔字段,User
称为Inactive
。
仅将false存储为null是否有天生的错误?如果可以,请您解释一下不利之处吗?几个月前,我已经与某人讨论了这一点,我们都同意,只要您在整个应用程序/数据库中始终如一地进行操作,就没有关系。最近,我认识的某个人强调应该使用“ true” true
或“ true” false
,但是他们并没有真正解释原因。
SELECT * FROM foo WHERE bar = FALSE
没有给出您期望的结果。
Null is a special marker used in Structured Query Language (SQL) to indicate that a data value does not exist in the database
这是公认的智慧,您不应重新定义Null在您的应用程序中的含义。这会使使用您的代码的其他人感到困惑。