User
というテーブルにブールフィールドを持つアプリケーションがあるとしましょうInactive
。
falseをnullとして保存するだけで本質的に問題はありますか?もしそうなら、あなたはマイナス面がどうあるべきかを説明できますか?これについては数か月前に誰かと議論しましたが、アプリ/データベース全体で一貫して行う限り、それは問題ではないことに同意しました。最近、私が知っている誰かが「真実」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の意味を再定義するべきではありません。それはあなたのコードで作業している他のすべての人にとって混乱するでしょう。