我正在爲許多員工設計一個計劃系統,以便在家中全天候工作。當用戶計劃新事件(1小時長的事件,從小時開始,24小時選擇)時,系統需要允許我們的用戶選擇他們想爲他們工作的員工。我需要報告那個時間可用的人員。我們有超過100名員工,他們的可用性變化頻繁。每週員工可用性數據庫設計
調度表:
EventID EmployeeID
startTime (datetime)
endTime (datetime)
可用性表:
EmployeeID
00:00
01:00
02:00
03:00
...
23:00
記錄在可用性表被存儲爲一個varchar(7)。 7的長度是每週的每一天。從未在此時間段提供'0000000'。總是在這個時間段是'1111111'。此時間段的星期二可用「0010000」。
編輯:此信息爲一個星期,因此7個字符的長度。從本週到無窮遠,這個表格設計假設員工每週都會在同一時間工作(除非他們在工作)。當然,員工可以改變他們的可用性,然後表格可以反映從那時起的那些變化。 /編輯
找出在任何給定時間員工可用的東西需要大量的循環,這顯然會使系統陷入沉寂,對任何人都不利。
這是我拿出來實行這個制度的最佳方式,短的可能有一個表來存儲每個員工的可用性。我意識到我是一個可怕的方法。有人可以請指點我正確的方向嗎?
大點,你可以到期了。你的意思是爲每個員工的可用性創建一個新表? – 2010-11-02 12:24:42
不,當然不是。我的意思是爲所有員工提供一張桌子。 – 2010-11-02 14:53:12
嗯,我不認爲我明白你的意思。我目前有一張表供所有員工使用。活動日程安排在單獨的表格中。和BTW,我已經改變爲CHAR數據類型,感謝小費 - 但正如你所說的,直到我更改表設置,這只是一個短期的修復! – 2010-11-03 03:10:18