2017-02-20 52 views
0

我正在創建ER圖的場景。ER圖中的用戶和客戶

方案

有幾個地區。一個地區可以有幾個商業鏈。每個業務鏈都有一個區域可以覆蓋。一個業務鏈有幾個網點。客戶可以使用此係統連接到任何業務鏈。一個商業鏈的員工可以通過特定商業鏈的管理員分配到任何商店................

我的問題是我該如何處理用戶詳細信息和登錄信息在上面的ER圖(或應用程序中)

  1. 我應該使用兩個單獨的實體作爲「客戶」和「員工」?
  2. 我應該使用一個實體作爲「用戶」嗎?如果是如何處理的處理就業者的花名冊

回答

2

上述情況,我建議你把客戶,員工和用戶到人,並使用分型爲每個角色中,可能會出現一個人:

Customers, Employees and Users are Persons ERD

我遺漏了重疊/不相交子集的任何指示,您可以根據您的要求填寫它們。實現不相交的子集需要添加一些額外的類型指示符並檢查下面的表的約束。

在物理上,上面的圖表中會轉化爲一組類似的表:

person (person_id PK, first_name, last_name, ...) 
user (person_id PK/FK, username, password_hash, ...) 
customer (person_id PK/FK, credit_limit, ...) 
employee (person_id PK/FK, salary, ...) 

這允許任何人以用戶記錄登錄,你可以很容易找到它們無論是客戶,員工(或兩者)通過加入這些表。您可以輕鬆創建客戶或員工特定的關係,例如

outlet_employees (outled_id PK/FK, employee_person_id PK/FK) 

其中employee_person_id在employee表中具有引用person_id的FK約束。您還可以根據您的要求制定用戶特定關係或一般人際關係

+0

這很棒。我認爲這對我有用。讓我創建這個模式並看看。謝謝 –