請幫我進一步瞭解many to many
的關係。假設我有老師和學生表,並且我的理解是one-to- many
。多對多關係
教師
TeacherId Primary Key
TeacherName
學生
StudentId Primary Key
TeacherId Foreign Key
StudentName
TeacherId
可以在學生表中出現多次。 我很困惑,因爲學生可以有很多老師。
- 我什麼時候可以說什麼是
one-to-many
什麼時候是many to many
?
我可以說一個學生可以有很多老師。
另一方面,我也可以這樣說一個老師可以有很多的學生。
- 如果兩個一個教師和一個學生可以有許多學生(教師),許多教師(學生)。我應該如何構建表格?
- 是師生關係或反之亦然
many-to-many
?
我明白,一旦我正確識別了這些關係,我就可以更容易地決定創建多少個表或者是否需要創建連接表。從我在線閱讀的教程和信息來看,它說如果關係是many-to-many
,我應該創建一個join-table
。所以我認爲它應該看起來像這樣。
教師
TeacherId Primary Key
TeacherName
學生
StudentId Primary Key
StudentName
Teacher_Student(連接表)
Id Primary Key
TeacherId PRIMARY KEY
StudentId --took PKs of both Student and Teacher table.
是有條件很容易識別關係,也許如果它依賴於一張桌子?
我會很感激任何解釋。我剛開始學習這個。
謝謝。
在上例中,teacher_student表可以有一個'id'作爲單個主鍵,然後'teacherid'和'studentid'是它們各自實體的外鍵。您也可以刪除'id'字段,並將'teacherid'和'studentid'一起用作複合主鍵(兩者仍然是外鍵)。 – sgeddes
它看起來像你已經回答你的問題,並理解這個答案。如果可能的話,試着理解*爲什麼Teacher_Student存在(可能是因爲他們在一個類中註冊)並且爲該對象建模,而不是在原因之外手動創建關係。可能是因爲生成的對象具有不同的名稱,但具有完全相同的結構。它仍然在語義上有用。 –
謝謝大家的意見。我很感激。 – p3ace