직원 클럭 인 및 아웃 시스템 (웹 사이트)을 개발하고 싶습니다.데이터베이스 설계 - 직원 클럭 인 및 아웃 시스템
직원이 어제 '시계 아웃'에 잊어 버린 경우 그들은 매니저에게 '시계에서'오늘, 그것은해야 플래그를 가지고 :
내가 관심을 두 가지입니다.
직원이 시간이 지남에 따라 작동 할 수 있습니다. 시계 월요일 11:00 AM - 화요일 01:30 AM (자정 이후). 나는 시스템이 thay 직원이 시계를 깜박 잊어 버렸다고 생각하고 싶지 않다. ...
- 직원이 하루에 여러 번 시계와 시간 제한을 설정할 수 있습니다.
어떻게이 문제를 해결하기 위해 및 데이터베이스 설계에 무엇을 개선 할 수 있습니까?
직원 테이블 :
+-------------+--------------+------+-----+---------+----------------+
| 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
아니요, 원래의 것에서는 매우 복잡해지며 경험으로 말합니다. 모든 초보자는 원본 디자인을 간다. db가 당신의 소원에 대한 보고서를 제공하지는 않지만 최소한 중복 양식으로 데이터를 제공한다고 가정하지는 않습니다. 신속한 검색을 위해 중복 된 통합 보고서 (in-out) 테이블을 유지할 수 있습니다. – shikhar
@shikhar 당신이 옳을 수도 있습니다. 제가 게시 한이 질문을보십시오. http://stackoverflow.com/questions/12632302/design-to-represent-employee-check-in-and-check-out –