這篇要談的是在 The Data Model Resource Book Vol 1 裡的 Common Party Relationships 的設計手法,以實例來理解這個設計如何滿足通用性的Party 關係。
Party Relationships 的主要目的是要描述 Party 與 Party 之間的各種關係,既然是Party 與 Party 之間關係,則可以視為是 Peer to Peer 的關係,就可以套用 Recursive Pattern 的概念,因此,在開始之前先回顧一下Recursive Pattern 的Level 3, 如下圖,並分別標示顏色:
依之前教過的方式,主要的Entity是Party Role, 所以
將Entity 替換成 Party Role,
將Entity Type 替換成 Party Role Type
而Entity Association 則可以替換成 Party Role Association (在下圖中則改為比較貼切的 Party Relationship),
同理,Entity Association Type 則替換成 Party Relationship Type
對應關係就如圖三所示:
Party Role 記錄了 Party 擔任什麼角色,一個人可以同時擔任多個角色,有哪些角色可以選則是由Party Role Type 決定
Party Relationship Type 則是定義了糸統要處理哪些 Party Relationship 的類別,如指導、聘用、就讀...等關係
Party Relationship 則實際記錄了每個Party Role 和另一個Party Role 之間的關係
如:Andy 指導 Bob
藉由 Party Relationship type 中的定義,可以知道,兩兩關係中,前者是指導老師的角色,後者是受指導的學生。
未來如果要增加一個角色,可以在 Party Role Type 中增加一個角色,並在 Party Relationship Type 中設定這個角色和其它角色可以有什麼關聯,就可以在不改data model 的情況下完成。