gue*_*tli 0 postgresql null datatypes
我有一个应用程序,用户可以在其中做出决定:
我开始使用可以为空的布尔列。
但是事情变得相当复杂,因为我的框架 (django) 没有提供用于开箱即用的搜索表单编码的输入字段。
在搜索表单中,我需要四种状态:
相关问题:https : //stackoverflow.com/questions/38307866/search-form-for-nullbooleanfield
一个旧的经验法则再次出现在我的脑海中:
避免可为空的数据库列。
我想将数据类型从可为空的布尔字段更改为不同的类型。
可以具有三种状态的列的哪种数据类型:是、不是、未知?
我使用 Postgres 9,但 AFAIK 这对于这个问题应该无关紧要。
你要boolean
。
它可以有true
(=yes)、false
(=no) 和null
(=unknown)
手册中的更多详细信息:https :
//www.postgresql.org/docs/current/static/datatype-boolean.html
“避免可空列”只是一个建议。如果您需要“未知”状态,那么NULL
这正是您要寻找的。它是专门为代表“未知”而创建的。
Postgres 甚至支持unknown
布尔表达式的关键字:where some_column is unknown
相当于where some_column is null
ifsome_column
定义为boolean