签到签离表(包括上午跟下午 共四次 包括每次的时间 人 图片 地点) 
该怎么设计 比较合理..
是签到签离分开记录 根据type分别 还是合起来组成一天的表

解决方案 »

  1.   

    CREATE TABLE `work_t` (
      `w_id` int(10) unsigned NOT NULL auto_increment COMMENT '自增ID',
      `w_member_id` int(10) unsigned default NULL COMMENT '签到者',
      `w_type` int(2) unsigned default NULL COMMENT '签到类型,1上午签到2上午签离3下午签到4下午签离',
      `w_time` datetime COMMENT '签到时间', 
      `w_address` varchar(255) COMMENT '签到位置',
      `w_filepath` varchar(55) default NULL COMMENT '图片路径',
      `w_file_ext` varchar(25) default NULL COMMENT '图片后缀',
      PRIMARY KEY  (`w_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='考勤表' AUTO_INCREMENT=1 ;要是进行统计今天谁迟到或者旷工 sql应该怎么拼 (上午8点半之前有效 中午12点到12点半有效 下午1点半到两点有效 下班6点到6点半有效 )
      

  2.   

     
    CREATE TABLE `work_t` (
      `w_id` int(10) unsigned NOT NULL auto_increment COMMENT '自增ID',
      `w_member_id` int(10) unsigned default NULL COMMENT '签到者',
      `w_type` int(2) unsigned default NULL COMMENT '签到类型,1上午签到2上午签离3下午签到4下午签离',
      `w_time` datetime COMMENT '签到时间', 
      `w_address` varchar(255) COMMENT '签到位置',
      `w_filepath` varchar(55) default NULL COMMENT '图片路径',
      `w_file_ext` varchar(25) default NULL COMMENT '图片后缀',
      PRIMARY KEY  (`w_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='考勤表' AUTO_INCREMENT=1 ;要是进行统计本月谁迟到或者旷工 sql应该怎么拼 (上午8点到8点半有效 中午12点到12点半有效 下午1点半到两点有效 下班6点到6点半有效 )
      

  3.   

    迟到或者旷工 也会出现在这个表中吗?
    如果说迟到也可以签到还说的过去的话,那么旷工由谁来签到?
    还有请假呢?
    所以你至少还有要一个员工表判别起来很简单
    DATE_FORMAT(w_time,'%H%i') BETWEEN '0800' AND '0830'
    以此类推