フィア・オブ・ジ・アンノウン

NULLの振る舞いについて。本書ではNULLを使うことがアンチパターンでなく、一般の値としてNULLを使うことが良くないと述べている。
とくに、すべての項目にNOT NULLを使うように強制するのはよくないという。欠けている値を表現するには、何かの値を「欠けている値」として割り当て、それにしたがってアプリ側で処理する必要がある。

ただ、言い換えれば、上記のような扱いができるのであれば、NOT NULLにしたって構わないことでもある。例えば、DEFAULT値にNULLとして扱う「欠けている値」を設定しておくという規約にしておくのが良い。例えば、在職中の従業員他の退職日をNOT NULLにしたいのならば、DEFAULT値に2999/12/31を設定しておき、それを退職日未定とみなすといった設計である。

さて、この話題については有名なNOT NULL撲滅委員会が面白い。いきなり

しかし NULL を完全に排除することはできない

なのだから。
上記の結論にあるどうしようもないときだけ使う。という戦略については私も賛成する。ただ、私としては、検索の対象とならないような属性に対してはNULLを許可する、でもいいと思う。