外部キー(Foreign Key、略 FK)は、別のテーブルの主キーを参照するカラムです。 テーブル同士をつなぐ「リンク」の役割を果たします。
例:orders(注文)テーブルの user_id は users.id を参照する FK:
| id | user_id (FK) | total |
|---|---|---|
| 101 | 2 | 980 |
| 102 | 5 | 1,650 |
| id (PK) | name |
|---|---|
| 2 | 鈴木 花子 |
| 5 | 佐藤 次郎 |
FK には 「参照先に存在しない値は入れられない」というルールが付きます。 注文テーブルに user_id=999(存在しないユーザー)を入れようとすると エラーになり、データの矛盾を未然に防ぎます。
📌 JOIN は本コースのスコープ外。SQL で「注文した人の名前を一緒に取りたい」場合、JOIN という構文でテーブルをつなぎますが、本コースでは扱いません。 代わりに「user_id を取って、別途 users から id 指定で取る」スタイルで進めます(第3章)。
📌 QA 視点:「孤児レコード」(参照先が消えたデータ)の発生を FK が防いでくれる。 ただし、FK 制約を外している運用では「ユーザー削除後も残った注文」のような事象が起きるので、設計時にどこに FK が貼られているかを把握しておきましょう。
外部キー(FK)の役割として最も正確なのは?