3値理論はデータベースに限った話じゃない
今日、データベースに入れる値がNULLか空文字かでちょっとした論争に。
個人的には「データがないんだから"NULL"」だと思ったんですが、「空文字でいいじゃん」と「決まりはないけど他が空文字だからここも空文字で」という二対一で負けました。
NULL撲滅委員会なんてものもあるぐらいですし。
いまいち腑に落ちないですが…。
でも、SQLではともかくプログラムで積極的にNULLを使うと往々にして変なコードになります。
たとえば、Javaで書くと・・・
Boolean flag = null;
たぶん、混乱すると思います。
でも、たまにenumだとnullを入れたくなることはあります。
「判断がつかない」ときは思い切ってnullを入れておくということが2回ぐらいありました。
(さすがに局所的に使って、ほかのクラスに渡すようなことはしませんでした)
ちなみに、JavaScriptは4値理論です。
true, false, null, undefined
あまり積極的に使うとやはり混乱しそうですが。
うまく使いこなせれば便利ですが、下手をするととたんに混乱の種に…。
難しいですね(><)