nullの回避について
TMが「nullは認めない」というのはどういう意味なのかについて、佐藤正美氏にした質問といただいた回答。
演算対象にならない列=画面とDBの間で出し入れしてるだけの列なら、nullがあってもいいのではないか
Q: nullを認めない理由が「(論理演算・算術演算・文字列演算すると)3値論理で考えなくてはならなくなるから」なのだから、画面に出し入れしているだけの、全く演算されないデータ項目にはnullがあってもいいのではないでしょうか。
A: アプリケーションで将来も絶対に演算対象にしないし、将来ユーザにデータベースを開放することになっても、絶対誰も演算しないと分かっているのであれば、よい。
※でもそんな保障はないんだからやめなさい、という意味だろう。
外部結合で出るnullはどうするか
Q: nullが出ることがあるから、外部結合は禁止ですか?
A: 違う。実データ上にnullが出るのを認めないのであって、外部結合は当然やってもいい。が、これはアプリケーションに返す結果表にnullがあってもいいということではない。それは適切に(COALESCEとかで、ということだろう)処置する。