参照制約がひっかかってしまってデータの削除ができないという場合があると思いますが、そのことについて簡単にまとめておきたいと思います。
参照制約に基づくデータの削除
結論
参照制約元のデータを消してから、削除していけば大丈夫。
参照制約がくっついている場合は、データベースを削除できません。まずは参照制約をしているテーブルを削除して、その後でデータベースを削除すれば大丈夫です。
基本情報技術者試験の問題に出てきていたので、備忘録的にまとめておきます。では!
この件についてなんですが、現場ではDBに関連する制約はあまりつけない方が良いのではないかというベストプラクティスもあるようです。
なぜかというと、データの削除をする際にも順番を考えなくてはいけなくなりますし、データを入力する際にも、順番を考えなくてはいけなくなるからです。
特に大規模なサービスになってくると、このようなDB制約がありすぎると、非常に取り回しが面倒になってしまうようです。
なので、基本的にはDB周りの制約はあまりつけすぎずに、Rails側でvalidationをかけるなどして対応した方が、汎用性があるみたいです。
あまり大きいシステムに触ったことがないので、なんとも言えない部分がありますが、そちらについては今後触る機会があったら、やっていきたいと思っています。