Relational-Theory

每對實體的唯一關係屬性

  • March 27, 2021

我有實體“學生”和“課程”,它們與稱為“考試”的多對多關係相關聯。關係“Exam”有一個屬性“Grade”。對於這個 ER 模型,我製作了一個關係模式:

Student(StudentID, StudentName, DoB)
Course(CourseID, CourseName)
Exam(StudentID, CourseID, Grade)

有人可以解釋一下您如何將學生無法為一門課程獲得多個成績的事實放入關係模式中嗎?例如,我們不能有 和 之類的(Student1, Course1, Grade1)記錄(Student1, Course1, Grade2)

在關係數據庫中,每個表都應該有一個主鍵。

主鍵可以是一列,例如 StudentId,也可以是複合鍵,例如 (StudentID, CourseID),這正是您在考試中應該使用的。

然後考試的主鍵保證“學生不能為單個課程獲得多個成績”,因為這將需要具有相同 (StudentID, CourseID) 值的多行。

您將為此創建一個唯一約束,exam (StudentId, CourseId)通常可以通過該表上覆蓋兩列的唯一索引來實現。

這是 MySql 中的快速展示

引用自:https://dba.stackexchange.com/questions/288835