最終更新
データベースにおける外部キーとは、2つのテーブルのデータ間のリンクを確立するために使用されるフィールド(またはフィールドのコレクション)です。リレーショナルデータベースでは外部キーの概念が重要な役割を果たします。他のテーブルの主キーを参照することでテーブル間の相互参照として機能し、それによってテーブル間のリンクが確立されます。
HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。
✓ 質問し放題
✓ β版公開中(2025年内の特別割引)
例えば、Studentsという名前のテーブルとCoursesという名前のテーブルの2つのテーブルがあるとします。各生徒は複数のコースに登録できます。
Studentsテーブルは次のようになります。
| StudentID | FirstName | LastName |
|---|---|---|
| 1 | Taro | Yamada |
| 2 | Hanako | Tanaka |
Coursesテーブルは次のようになります。
| CourseID | CourseName | Teacher |
|---|---|---|
| 101 | Math | Mr. X |
| 102 | English | Mrs. Y |
どの学生がどのコースに在籍しているかを追跡したい場合、Enrollmentsという名前の新しいテーブルを作成することになるでしょう。このテーブルにはStudentIDフィールドとCourseIDフィールドがあり、これらはそれぞれStudentsテーブルとCoursesテーブルの主キーにリンクする外部キーとなります。
Enrollmentsテーブルは以下のようなものです。
| EnrollmentID | StudentID | CourseID |
|---|---|---|
| 1 | 1 | 101 |
| 2 | 1 | 102 |
| 3 | 2 | 101 |
このEnrollmentsテーブルでは、StudentIDはStudentsテーブルのStudentIDを参照する外部キーであり、CourseIDはCoursesテーブルのCourseIDを参照する外部キーとなります。
これらの外部キーの関係は、存在しない学生やコースを参照するレコードをEnrollmentsテーブルに追加できないためデータの整合性を保証します。さらにEnrollmentsテーブルで参照されている学生またはコースを削除しようとすると、データベースはデータの一貫性と整合性を維持するために阻止します。