安易に NOT NULL を外さない

テーブル設計において「これは任意項目だから」といって安易にカラムの NOT NULL 制約を外すのはイマイチかなと思った次第です。自戒を込めて。

例えば、こんなテーブルがあるとして、商品の説明文 (description) は任意項目だから NOT NULL は外そう、という安易な思考にならないように。

この場合、テーブルを分けて NOT NULL 制約を付けるのがよさそう。

クエリはこんな感じになるはず。

SELECT * FROM products p
LEFT JOIN product_descriptions pd ON  pd.product_id = p.id
WHERE p.id = xxx;

現場からは以上です。