GitHub は Foreign Key をまったく使っていません(2016)
(github.com)FK は
-
シャーディングを難しくし
-
パフォーマンスを低下させ
-
オンラインでのスキーマ移行にも問題になります。
だから私たちは FK を使いません。どこでも。
= このリポジトリは MySQL 向けのスキーマ移行ツールである gh-ost の話なので、ほかの DB には当てはまらない可能性があり、(3年前のイシューですが、新しいコメントで PostgreSQL 11 では FK のシャーディングもできるという話があったため、投稿者があらためてコメントを追記)
= テーブル間で ID による参照はしていますが、FOREIGN KEY 制約は使っていないという話です。
1件のコメント
整合性チェックをどのように行っているのかが鍵になりそうですね。