2016-04-05 22 views
0

我想了解數據庫設計(ER圖)的克羅足跡符號。我想爲一個STUDENT(實體/表)可以註冊多個課程(COURSES_ENROLLED表/實體)的場景創建一個ER圖。哪個基數適用於此處描述的場景

我已經創建了以下ER圖。

enter image description here

現在,對於這種情況,其 「連接器符號」 將適用,一個標有(1)或(2)?任何解釋都會有很大的幫助。

回答

1

我假設你也有一個實體COURSE(因爲你有courseId作爲COURSES_ENROLLED的外鍵)。因此,COURSES_ENROLLED恰好將一名學生鏈接到該學生所註冊的一門課程,對嗎?

這是用圖中的替代方法(1)表示的。每個COURSES_ENROLLED實例只能看到一個STUDENT實例,而每個學生可以看到很多實例。

如果您沒有中間實體並直接鏈接STUDENTCOURSE,您的替代方案(2)將是適當的。在這些之間,多樣性將會是m:n,所以你會在兩端有一隻烏鴉的腳。但courseId將是正確的實體的主鍵,它應該被稱爲COURSE

順便說一下,檢查您在(1)和(2)中表達的約束條件(即學生必須至少註冊一門課程)是否符合您的功能要求。可能每個學生在某個時間點至少會註冊一個課程,但是如果您在數據模型中包含這個約束,則需要始終保持。所以你現在的模型不允許創建一個學生,而不必一次將她連接到至少一個課程。

+0

感謝您的回覆。 (1)意味着1:m的關係,基本上我想要一個學生應該可以報名參加MULTIPLE課程;因爲這是我想要的。 – CuriousMind

+1

學生1:n課程_已註冊n:1課程 學生可以報名參加很多課程,課程可以帶很多學生。 – TAM