NULLをすべて何らかの値に置き換えるとよいのか?
from フィア・オブ・ジ・アンノウン
NULLの扱いは難しい…とはいえ、NULLがないと表現に困る場合もある
どんな場合に困るか?
年齢不詳の人の年齢
30歳のスタンと年齢不詳(unknown)のオリバー、どちらが年上か
答えは「わからない」
オリバーの年齢はデータベースにどう持つべきか
年齢列は数値型として、絶対にありえない値を持たせる?
年齢-1とか年齢999とか?
持てるし、意味は何となく察することはできるが…
集計関数を使う時などに不都合が生じる
一番年下の人、平均の年齢など
where 年齢 <> -1のように除外しないといけない
それって結局、NULLをunknownとして扱えば良かったのでは?
NULLに依る不都合もあるが、NULLを徹底的に避けようとした結果「それNULLで良かったのでは?」となるケースもある