Postgresql
可以具有三種狀態的列的數據類型:是,否,未知
我有一個應用程序,使用者可以在其中做出決定:
- 是的
- 不
- 未知
我開始使用可以為空的布爾列。
但是事情變得相當複雜,因為我的框架 (django) 沒有提供用於編碼開箱即用的搜尋表單的輸入欄位。
在搜尋表單中,我需要四種狀態:
- 是的
- 不
- 未知
- 全部顯示(在搜尋中忽略此列)
相關問題:https ://stackoverflow.com/questions/38307866/search-form-for-nullbooleanfield
一個古老的經驗法則再次出現在我的腦海中:
避免可為空的 db 列。
我想將數據類型從可為空的布爾欄位更改為不同的類型。
可以具有三種狀態的列的數據類型是什麼:是,不是,未知?
我使用 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
Postgres 土地中是否存在 BIT 數據類型?
當我只想擁有 Y/N/NULL 值時,BIT 是我在 SQL Server 中使用的數據類型。