2017-06-15 41 views
0

我有一張桌子與人,需要存儲多個電話號碼相關的一個人做這個我創建了第二個表與2個字段的idperson和數字第一個字段是FK引用一個或多個人。在數據庫建模中,它是什麼樣的關係?

enter image description here

是有效的這種做法? 這個字段(idperson)必須是主要的? 它是什麼樣的關係?

回答

1

您的方法是有效的。

雖然idperson是第一個表的PK,但它本身不能作爲第二個表的PK,因爲您表示可以將多個電話號碼關聯到一個人。您可以製作一個組合鍵idperson, number。或者,你可以引入代理鍵,例如idnumber

如果您創建組合鍵,則第二個表代表EER術語中的多值屬性,並且不存在任何關係(實體集之間)。

如果您生成代理鍵,則第二個表代表具有非規格化關係的實體關係。該關係由一對實體密鑰idnumber, idperson表示。由於PK約束將僅在其中一列上,因此它將表示一對多關係。

0

是的,這是一個有效的方法。

Idpersona不能成爲主鍵,因爲一個人可以有更多的電話號碼。

這是一對多的關係。

+0

如果我做idpersona小學我不能重複id在這個領域,但它是必要的存儲重複值,但我認爲這個領域nesesarily必須索引,是不是? –

+0

@DavidUntama idpersona只在第一個表中是主要的,在第二個表中它是一個外鍵 – EstevaoLuis

0
  1. 它應該工作正常。當然,這取決於你的應用程序如何處理數據。
  2. ID應該是主鍵和IDpersona外鍵。
  3. 關係:一對多。更多關於它的信息here