mysql 中的布尔值是否应该为 NOT NULL?

Wil*_*ill 5 mysql database-design

在设计我的数据库时,我意识到我将一些布尔值保留为 NOT NULL,而另一些则默认为 NULL。什么时候允许布尔值可以为空的经验法则是什么?由于我拥有的布尔值都是 is_SOMETHING,我认为它们永远不应该为 NULL,因为它们要么被归类为 SOMETHING,要么不被归类。

Bil*_*win 7

遗憾的是,如果您不指定,SQL 默认将所有列视为可为空NOT NULLNOT NULL可以说,属性更常见的是需要一个值而不是 null,因此如果将 SQL 定义为将属性视为默认值而不是相反,那就太好了。

在您的情况下,我认为该属性应该是,NOT NULL除非您需要表示“未指定”或“不适用”的情况,这就是 NULL 的用途。

根据您的描述我们无法回答这个问题。这取决于您的项目的用途和要求。

NOT NULL甚至有可能在同一个数据库中,您的某些布尔值应该可以为空,而其他布尔值应该可以为空!


Tri*_*ics 5

一个NULL布尔值有三个可能的值: truefalse,和null。一个NOT NULL布尔值只有两个,truefalse。您的应用程序逻辑必须足以告诉您哪个是正确的选择。