這是一個設計問題。數據建模中將真人與應用用戶相關聯的最佳模式是什麼?
我需要拿出一個小型應用程序的數據模型,我正在尋找最好的方法。
業務我試圖模型的簡化版本具有以下實體:
- 分配:這些項目一樣,他們有一個開始日期,結束日期和相關的一隊人
- 工人:這些是執行任務的人。一個給定的工人一次只能關聯一個作業。許多工人可以同時關聯到相同的任務(對於大型項目)。
- 經理:這個行業基本上很少有管理人員,他們負責在工作分配到新任務時負責人。
然後,是在Web應用程序的經理將用於管理誰做什麼,即其工作人員被分配到的任務。 Workers也將使用此應用程序來註冊與其分配相關的費用。
因此,在Web應用程序的上下文中,還會有用戶實體,並且工作人員和經理都將讓他們的用戶訪問該應用程序。
我的問題是: 什麼是支持這個(簡單)系統的最佳數據模型?
我想象這個模型:
- 用戶(ID,用戶名,密碼,...)
- PERSON(從用戶+姓名,電子郵件等繼承...)
- MANAGER(從人繼承+的經理額外的字段只)
- 工(從人+對工人的額外字段繼承只)
我不喜歡這種模式每個人都必須擁有一個用戶。也許今天發生在工作人員和管理人員身上,但是我會在這個系統中添加「客戶」,這個系統也會有相關人員不能訪問該網站,所以他們不會有用戶。
有沒有更好的方法?有沒有繼承的標準方法可能?
更新
好吧,基於該模型提出上述與這個特定的業務一些額外的信息完成,這裏的(基本)模型。
PERSON
id
email
passmd5
role_id
firstname
lastname
...
ROLE
id
description
PERMISSION
id
description
ROLE_PERMISSION
role_id
permission_id
COMPANY
id
name
contact_name
contact_email
ASSIGNMENT
id
customer_company_id
start_date
end_date
location_lat
location_lng
location_description
MACHINE
id
brand
model
description
PERSON_MACHINE_EXPERTISE
person_id
machine_id
以下是關於企業一些額外的信息,以幫助瞭解整個圖:
- 的業務包括在發送人誰是在某種機械在世界各地不同地點的專家,給爲特定客戶提供服務。
- 有些人是「專家」。
- 有些人是「管理者」(可能只有一個,但可能會有更多)。
- 有任務(基本上,這需要專家完成這項工作,有時不止一位專家)。
- 有客戶,他們基本上是公司,而不是人。
- 有機器。
- 有關哪個人是哪臺機器的專家的信息。
有意義嗎?任何可能改善這一點的想法?
同意。這是「黨派角色」模式,這種類型的問題很常見。 – sfinnie
我有點像這種方法。但我的客戶是公司,而不是人。所以也許我分開處理它們。請參閱下面的修改模型。 –
以下型號?哪裏?無論如何,你最初提到'人',所以我就是人。不過,該設計可以被翻譯成處理公司。 – rae1