![](/img/trans.png)
[英]DB model for many tables with a zero-to-many relationship to the same table
[英]One-to-many/Zero-to-many relationship?
我在兩個表之間的以下關系有點麻煩:
假設有兩個表,一個表是Student,另一個表是Module。 1個學生可以有1個或多個模塊,但是從技術上講1個模塊可以有0個或多個模塊。 如何在數據庫中實現呢? 謝謝。
這是N:N關系。 答案是必須創建一個中間表,該中間表將在Student表和Module表之間創建鏈接。
中間表(例如,您可以將其命名為StudentByModule)將包含一個標識學生的鍵和另一個標識模塊的鍵。 假設您在兩個表中都創建了正確的鍵。
http://en.tekstenuitleg.net/articles/software/database-design-tutorial/many-to-many.html
至於沒有將模塊分配給任何學生的情況,將通過在中間表中沒有將模塊鏈接到學生的行來建模。
還要注意,為了將學生與模塊相關聯,您首先必須確保首先創建了學生和模塊。
這實際上是一個多對多的關系。 您使用第三個表來實現它以鏈接表
Student table
--
StudentId PK
...
Module table
---
ModuleId PK
...
StudentModule table
---
StudentId FK
ModuleId FK
僅當學生和模塊之間存在鏈接時,最后一個表才有一條記錄。 您插入Student
表和Module
表的主鍵以使其鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.