2017-03-23 221 views
1

我有一些困惑/困難企圖拉攏和了解的ERD圖,下面是這樣一個問題:如何創建實體關係模型?

「招收的學生在其提供由教師講授的課程院校。當學生註冊時,他們必須註冊他們想要學習的課程。然後,學院將爲學生指定一位導師,他是一名教師。「

這是正確的圖嗎?

http://imgur.com/a/Z8Tkl

大學應該是學生實體的實體或屬性?

回答

1

大學應該是學生實體的一個實體還是屬性?

問題是:「沒有第一個學生參加,大學能否存在?」。

是的,爲了讓學生上大學必須存在的大學;因此大學是一個獨立實體

接下來的問題是:大學應該是學生實體中的一個屬性,還是需要一個單獨的關係(表,實體){STUDENT_ID, COLLEGE_ID}

這取決於你的「業務規則」(約束)。


[1]如果規則(約束)是:

[c1]每個學生都可以參加只有一個大學;對於每所大學而言,有可能有不止一名學生參加該大學。

然後將COLLEGE_ID添加到學生實體。


[2]如果規則(約束)是:

[c2]每個學生都可以參加一個以上的大學;對於每所大學而言,有可能有不止一名學生參加該大學。

比你需要添加一個依賴實體{STUDENT_ID, COLLEGE_ID}


排序出老師,當然,學生的詳細信息,請參閱this SO example

你原來的模式有一個像一些額外的弱點:

  1. 大學能提供的課程沒有一個學生報名參加課程第一?

  2. 老師可以在一個以上的大學教書嗎?

  3. 老師可以教一個以上的課程嗎?

  4. 一個以上的老師可以教一門課嗎?

  5. 如何確定學生是否參加課程,教師是否指導學生;那個老師還教這個課程?

在您完成此工作時,您將添加更多實體。

+0

在ER中,屬性不僅僅是列,而是從實體或關係集到值集的映射。如果'College'是一個獨立的實體集,'Student'表中的'COLLEGE_ID'列不會被視爲屬性,而是由'STUDENT_ID,COLLEGE_ID'表示的關係的一部分。另外,_dependent entity_不是ER模型中的一個術語 - 我們稱之爲關係。表格代表實體和FK約束表示關係的想法來自網絡數據模型,而不是ER模型。 – reaanb

+0

@reaanb,謝謝澄清。 –

+0

@reaanb,densityx,https://en.wikipedia.org/wiki/IDEF1X –

1

你的圖不是一個合適的ER圖。儘管忽略屬性以專注於實體和關係會很有用,但您至少應該使用一個形狀來表示關係集,以便符號不會排除三元關係和更高關係。在陳的符號中,關係由菱形表示。因爲它與多個其他實體集(StudentCourse,可能Teacher爲好)相關聯作爲一個獨立的實體集

College最好處理,。當某些東西是關係和屬性的主題時,它應該是一個實體集合。在ER中,屬性是從實體集合(或關係集合)到值集合的映射,即它們應該用於標籤和度量。

您選擇的關係看起來很合理,但我建議您考慮直接將TeacherCollege關聯起來。根據你如何處理Course(大學可以提供相同的課程,或者每個人都提供自己的實例嗎?)和Student(學生可以在多個大學註冊,可以沒有任何學生註冊的課程?),這可能是不可能的得出TeacherCollege之間的關係。