(1) 把每個[實體]都做成一個[表單],實體的[屬性]就是[欄位] , 並訂下主鍵(PK)。
例如 : Person (person_id, Name, Lastname, Email, Phone)
(2) 當存在多值屬性時(如Phone),該多值屬性也變成一個表格。
例如 : Person (person_id, Name, Lastname, Email)
以及 Phone (person_id, phone_id, phone_number)
(3) 當出現弱屬性時,該弱屬性可以由其他屬性得知,則該弱屬性不必成為一個欄位。
例如 : age可以由生日計算得知,age則不必成為一個欄位。
(4) 當實體A與實體B為 1:1 時,A表單加上FK連到B表單PK,或是B表單加上FK連到A表單 PK。
A(aid,a1,a2 …, bid) B(bid,b1,b2 …) 或是 A(aid,a1,a2 …) B(bid,b1,b2 …, aid)
以上A表單的bid為FK連接到B表單的bid (PK)
以上B表單的aid為FK連接到A表單的aid (PK)
例如 顧客 ~ 購物車關聯是1:1 (一個購物車對應一個顧客,一個顧客只能有一個購物車)
所以我們可以在購物車表單設一個FK,連結到顧客的PK
或是在顧客表單設一個FK,連結到購物車的PK
(不過大多都是使用購物車表單設一個FK,連結到顧客的PK)
(5) A實體與B實體為 1:N,B表單加上FK連到A表單的PK。
A(aid,a1,a2 …) B(bid,b1,b2 …, aid)
以上B表單的aid為FK連接到A表單的aid (PK)
(5) A實體與B實體為 1:N,B表單加上FK連到A表單的PK。
A(aid,a1,a2 …) B(bid,b1,b2 …, aid)
以上B表單的aid為FK連接到A表單的aid (PK)
例如 一個顧客可以有多個訂單
因此就在訂單加上FK連到顧客的PK
(6) A實體與B實體為 N:N,AB間的關聯C會變成表單,C表單多出兩個FK,一個到A 一個到B。
A(aid,a1,a2 …) B(bid,b1,b2 …) C(cid,aid,bid …)
(6) A實體與B實體為 N:N,AB間的關聯C會變成表單,C表單多出兩個FK,一個到A 一個到B。
A(aid,a1,a2 …) B(bid,b1,b2 …) C(cid,aid,bid …)
例如 老師與課程的關聯,老師可以教授多個不同課程,課程也可以給多個不同老師來教
如此要維護這樣的關係,就必須多出一個表單,假設是[授課表單]
[授課表單] 就會有兩個FK,一個連到老師,一個連到課程。
(7) 如果[關聯]有屬性,則該[關聯]會變成一個[表單],關聯的[屬性]就成為其中[欄位],再加上實體的主鍵為其中的[欄位] 。
例如 ~ 學生以[選課]關連到課程,[選課]是一個關聯,這個關聯產生[成績]這個屬性
也就是[選課]這個關連會變成選課單的表單(table),才有辦法有[成績]這個屬性
0 留言