我想開發員工時鐘輸入和輸出系統(網站)。數據庫設計 - 員工時鐘輸入和輸出系統
我擔心兩件事情:
如果員工忘記從昨天的時鐘輸出「,他們有「時鐘在」今天,它應該標誌經理。
工作人員可能會隨着時間的推移工作,例如:時鐘週一上午11:00至週二上午01:30(午夜之後)。我不希望系統認爲工作人員已經忘記了計時。
- 工作人員可能每天多次計時進入和計時。
如何解決這個問題,有什麼可以對數據庫設計加以改進?
人員表:
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| password | varchar(50) | NO | | NULL | |
| hourly_rate | decimal(6,2) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
計時錶:
+----------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| staff_id | int(11) | NO | | NULL | |
| clock_in_date | datetime | NO | | NULL | |
| clock_out_date | datetime | NO | | NULL | |
+----------------+----------+------+-----+---------+----------------+
這會增加不必要的複雜性,以確定該人是否在重新計時之前計時了。原始設計更好。儘可能避免使用EAV表格。 – HLGEM 2012-03-06 14:53:16
不,原來的那個變得非常複雜,我從經驗中講述了這一點。任何新手都會接受最初的設計,但沒有注意到db不應該給你報告你的願望,而是以最少的冗餘形式提供數據。您可以保留一個冗餘的統一報告表(輸入 - 輸出)以便快速檢索。 – shikhar 2012-03-06 16:19:47
@shikhar你可能是對的。看看我發佈的這個問題。 http://stackoverflow.com/questions/12632302/design-to-represent-employee-check-in-and-check-out – 2012-09-28 01:16:50