2011-09-28 35 views
0

我開發了一個網站(PHP),允許員工將記錄添加到我們的系統中。數據錄入跟蹤(數據庫設計)

工作人員將在我們的數據庫中添加數千條記錄。

我需要一種方法來跟蹤記錄已經完成和記錄的過程/狀態。

這裏有多支球隊我能想到的:

  1. 數據錄入團隊

  2. 校對團隊

  3. 管理團隊

當工作人員(數據進入隊)完成了一個記錄 - 他/她將點擊完成按鈕。然後不知何故它應該自動分配給「證明閱讀團隊」。

需要從證明閱讀團隊中檢查兩次記錄。如果StaffB完成校對閱讀,則校對閱讀團隊的另一名成員需要再次檢查。

當校對完成後,管理團隊將然後分配

在幾個月後記錄可能需要「已完成記錄」進行更新(拼寫錯誤,價格變化等) - 管理員可以分配記錄數據錄入團隊。

這是很好的數據錄入管理解決方案嗎?我如何將它放入數據庫設計的角度?

這裏是我的嘗試:

mysql> select * from records; 
+----+------------+----------------------+ 
| id | name  | address    | 
+----+------------+----------------------+ 
| 1 | Bill Gates | Text 1 Text Text 1 | 
| 2 | Jobs Steve | Text 2 Text 2 Text 2 | 
+----+------------+----------------------+ 


mysql> select * from staffs; 
+----+-----------+-----------+---------------+ 
| id | username | password | group   | 
+----+-----------+-----------+---------------+ 
| 1 | admin1 | admin1 | admin   | 
| 2 | DEntryA | DEntryA | data_entry | 
| 3 | DEntryB | DEntryB | data_entry | 
| 4 | PReadingA | PReadingA | proof_reading | 
| 5 | PReadingB | PReadingB | proof_reading | 
+----+-----------+-----------+---------------+ 


mysql> select * from data_entry; 
+----+------------+-----------+------------------------+ 
| id | records_id | staffs_id | record_status   | 
+----+------------+-----------+------------------------+ 
| 1 |   2 |   3 | data_entry_processiing | 
| 2 |   2 |   3 | data_entry_completed | 
| 3 |   2 |   4 | proof_read_processing | 
| 4 |   2 |   4 | proof_read_completed | 
| 5 |   2 |   5 | proof_read_processing | 
| 6 |   2 |   5 | proof_read_completed | 
+----+------------+-----------+------------------------+ 

是否有更好的替代數據庫設計的解決方案?

回答

1

我認爲設計做得很好。但可能要將組分成組表,並將record_status分成狀態表。如果你存儲大量的記錄,你會存儲很多無用的信息,至少創造record_status字段和組現場

表枚舉類型:羣體
ID - 名
1 - 管理
2 - data_entry
3 - proof_reading
...

表:狀態
id - 名稱
1 - data_entry_processing
...

,如果你希望用戶在不同的組在同一時間,你可以創建users_group表

表:user_groups
GROUP_ID - user_id說明
1 - 1
2 - 1
1 - 4
3 - 4 - 4
....

希望這會有幫助