FOREIGN KEY制約(外部キー制約)は諸刃の剣的な仕様なので、FOREIGN KEY付けろと軽く言われた際には気をつけましょう。私的にはこの機能は DBに必要ないと思っているのですが、もはやDatabaseの伝統みたいな感じになっているので、大きな声では言えない感じです。不要な理由としてアプリケーションでAの値とBの値が結びつくという設定を明示的に行うか、SQLの作り方で十分すぎるほど代用できる。アプリケーションに仕様変更が発生した際にテーブル構造の改変が非常にやりずらい。エラーを防止するはずの外部キー制約が外部キーがないせいで致命的なエラーになることがある。壊れやすく修理しやすい機械を使うか、壊れづらいが一度壊れてしまったら修復に結構時間がかかってしまう機械のどちらを好むかという問題でもありますが。