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
テーブルで参照されている学生またはコースを削除しようとすると、データベースはデータの一貫性と整合性を維持するために阻止します。