2012-02-09 56 views
0

我正在嘗試開發一個項目/員工/小時應用程序並需要數據庫設計。我有一段時間沒有這樣做,所以我正在尋求好的建議。Mysql數據庫設計通知

基本上,應用程序是跟蹤員工在項目上工作了多少小時。員工必須每天登錄系統,將他們花費的時間花在他們工作的項目上。到本週末,他們提交時間表並顯示他們在每個項目上的總工作時間。

例如,員工A在2012年2月11日的項目A上工作3小時,員工B在項目A上工作2小時,在項目B上工作1小時,時間爲2012年2月9日。經理可以看到這兩名員工在登錄時花費了5小時的時間在項目A上和1小時的項目B上。管理人員還可以看到員工B在所有項目(A和B)上的花費了多少小時。數據庫表我想到的是

EMPLOYEES 
id/name/password/manager_privi 

PROJECTS 
id/project_name/client/hours/date 

HOURS 
employee_id/project_id/date 

這是足夠的我需要什麼?謝謝您的幫助。

+0

這就夠了:)至少它應該是 – Vyktor 2012-02-09 15:21:41

+2

小時列不應該列在HOURS表下面嗎? – 2012-02-09 15:23:17

+0

也許客戶表嗎? – 2012-02-09 15:34:13

回答

1

我對你在問題中分配的小時和日期列有點困惑,所以我將使用更具體的名稱。這是我看到它的方式。

PK是報價

CLIENTS("id", name) 

之間有人引用和失蹤:)

EMPLOYEES("id", name, password, manager_privi) 

不知道manager_privi是什麼...但願那是員工的經理?

PROJECTS("id", project_name, client_id, start_date, end_date) 

分裂之日起兩個爲了不與工作日期

HOURS("employee_id, project_id, worked_date", hours) 

注意它是一個複合鍵混合。您可能還必須在project_id和worked_date上創建索引以加快速度,但這與設計無關 請注意,員工不能在同一個項目中擁有同一日期的2條記錄。在這種情況下,如果員工嘗試在同一日期和項目中添加更多小時數,則必須更新小時數量。

希望這有助於您。

+0

不錯。謝謝您的幫助。 – FlyingCat 2012-02-10 18:48:57