2015-10-02 233 views
0

我瞭解實體關係圖(ER),並有關於這一個問題。假設我有以下情況:「學生可以參加多個班級,但不一定需要參加任何班級」。實體關係Abiguity

我有一組 「學生」(S)和一組 「類」(C)。假設我想定義一個關係「需要」。我假設「接受」關係在部分參與下是多對多的。那是因爲一個學生可以參加多個班級,一個班級可以由多個人參加。 「部分」,因爲可能有學生不上課,沒有學生的課程。那是對的嗎?

現在,假設我有一組「人」(p)和要定義的關係「isChildOfMother」。我相信這是多對一的?因爲多個人可以有同一個母親,但不是多個母親,一個母親可以有多個孩子?但是在這種情況下,關係會從集合p指向集合p?我怎樣才能確保它的閱讀方式正確? (即:不是一個孩子可以有多個母親,但一個母親只能有一個孩子?)

我想替代方案會創建一個「兒童」和一組「母親」,但如果有人是一個母親和一個孩子?

+0

一位母親可以有一個以上一個孩子,除非在中國。 –

+0

您是否在問如何在SQL中表示這種關係?因爲否則,SQL與它無關。 –

回答

0

你可以有一個自我的關係或遞歸關係

在這種情況下

  • 每個人只能有一個母親或沒有母親。
  • Ana沒有母親(孤兒)或母親不在數據庫上。
  • Ana可以有不止一個孩子
  • Alice是母親和孩子

id | name | mother_id | 
1 | Ana | null 
2 | Luis | 1 
3 | Alice | 1 
4 | Jhon | 3 

對於這一點,你說mother_idFKPerson(id)