miyasakura’s diary

日記です。

データベースの外部キー制約

ちゃんとDB周りを復習しようと思ってMySQLの本を読んでます。

よく考えたら最初にSIerに居た時にOracle Masterの勉強はしたけど、MySQL使うようになってからちゃんと勉強してませんでしたごめんなさい。

で、外部キー制約(Foreign Key)について。

IPAの試験とかではよく出るこの外部キー制約ですが、SIerに居た時も某ゲーム会社に居た時も(両方ともそれなりに大規模システムを扱う会社)使ってるプロジェクトを見たことが無いんですよね。

アプリケーション側で担保して、DB側では制約を加えないのがパフォーマンス的にも実運用的にも理にかなってる気がします。

RailsとかでもActiveRecordで関係を定義したりしますが、外部キー制約をわざわざつけたりしないですよね。

今まで見てきた規模のプロジェクトでそれなので今後も外部キー制約なんて使うことないだろうなと思ってるんですが、大規模プロジェクトで使ってる例ってどのくらいあるんですかね?文化の違いな気はするので使ってるところもそれなりにあるとは思うのですが…。