>>16
そうだよね〜
あるマスタにないものを別のテーブルに入れてはいけない場合を考えてみよう
プログラムがそれをやるとなると
マスタの中に存在するか調べてから入れないといけなくなる
制約使えばエラーが発生するのでそこでメッセージ受け取って
適切なエラーメッセージクライアントに返すだけ

ただ、最近では制約とか外部キーとか使わないものを推奨している雰囲気はある