簡體   English   中英

一對多/零對多關系?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM