3値理論はデータベースに限った話じゃない

今日、データベースに入れる値がNULLか空文字かでちょっとした論争に。
個人的には「データがないんだから"NULL"」だと思ったんですが、「空文字でいいじゃん」と「決まりはないけど他が空文字だからここも空文字で」という二対一で負けました。


NULL撲滅委員会なんてものもあるぐらいですし。


いまいち腑に落ちないですが…。
でも、SQLではともかくプログラムで積極的にNULLを使うと往々にして変なコードになります。
たとえば、Javaで書くと・・・

Boolean flag = null;

たぶん、混乱すると思います。


でも、たまにenumだとnullを入れたくなることはあります。
「判断がつかない」ときは思い切ってnullを入れておくということが2回ぐらいありました。
(さすがに局所的に使って、ほかのクラスに渡すようなことはしませんでした)


ちなみに、JavaScriptは4値理論です。
true, false, null, undefined

あまり積極的に使うとやはり混乱しそうですが。


うまく使いこなせれば便利ですが、下手をするととたんに混乱の種に…。
難しいですね(><)