现要做一个考勤系统,不知如何设计数据库。
具体情况如下:
公司近2000人,有10个班制如下:
班制   正常出勤时间             加班出勤时间
 1      8:00-12:00 13:30-17:30       18:30-21:30
 2      8:00-16:00(白班)
        16:00-24:00(夜班)
 3      21:30-5:30                    6:30-8:00
 ......
 ......
我目前的做法是一个员工信息表(userid,username,department,班制ID,...)班制表(班制ID,班制内容,...),出勤表(userid,出勤时间),
这样的话,出勤表每天有超过1万条记录,而且员工工号会重复使用,即
某员工离职后,此工号可能会给新员工使用,这样在出勤表只有userid则会出现原员工的出勤信息。
以上内容,请大家帮忙给个设计思路,谢谢

解决方案 »

  1.   

    某员工离职后,此工号可能会给新员工使用,这样在出勤表只有userid则会出现原员工的出勤信息。你可以在员工表里面,加一个状态字段.比如1,代表现在的员工,0代表已经辞职的员工
      

  2.   

    出勤表(userid,出勤时间)可以设置为12个,每一月一个,这样出勤表的记录的数据量级别会减小.还有要确定员工离职是不是要保存出勤记录关注中
      

  3.   

    出勤表(userid,出勤时间),加一个字段(最好是员工的标识符,用于区别新,老员工):
    如(userid,出勤时间,userIdent[员工的标识])
    查询时select * from 出勤表 where userid='userid' and userIdent='userIdent'
      

  4.   

    在员工表中加一个字段ID,由系统自动产生,这个号作为员工的唯一标识,
    出勤表中的处理有两种办法,
    (1)也加一个字段ID,用于标记员工,数据来源于员工表中的ID
    (2)将出勤表中的UserId的值,变成ID值
      

  5.   

    /*在员工表中加一个字段ID,由系统自动产生,这个号作为员工的唯一标识,
    出勤表中的处理有两种办法,
    (1)也加一个字段ID,用于标记员工,数据来源于员工表中的ID
    (2)将出勤表中的UserId的值,变成ID值*/这个方法可行,谢谢出勤表这样设计怎样(userid,出勤时间)?
    还是这样设计好(userid,出勤时间,D1日期,D2,D3,.....D31)?
      

  6.   

    userid,出勤时间 ,Year,Month, Day, 班制ID,tOnduty1(上班时间1), vOndutyInfo1(上班时间1考勤情况,如迟到,旷工), tOffduty1(下班时间1), vOffdutyInfo1(下班时间1考勤情况,如早退,旷工) , tOnduty2, vOndutyInfo2, tOffduty2, vOffdutyInfo2, tOnduty3, vOndutyInfo3, tOffduty3, vOffdutyInfo3, tOnduty4