发贴心情 请教一个思路
建一个员工考勤的输入界面,要求按每天上报考勤,而且分上午,下午,字段从1号到31号,
因为要区分上午和下午,所以我将每个人定成两条记录,上午一条,下午一条,可是这样主管说乱。如:
姓名,时间,1  2  3   4  -----------31
张三,上午,病,事,------
张三,下午,病,    ,    
主管说姓名最好有一个,可是如何实现呢?

解决方案 »

  1.   

    你的主管说的对,你看看数据库中的范式的概念就明白了。
    可以另做一个employee表来存储员工的姓名,结构如下:
    ID,     CompellationName
    ========================
    0,      scyshys
    1,     王水云
    2,     VBDN
    3,     铁拳
    4       木头
    ...     ...这样,你的考勤记录表中就只需要存储员工的ID号了。
      

  2.   

    谢谢,你误会了,我不是这个意思!
    可以存id,可是上午下午也不能对应一个id呀?
    主要是设计思路不合理,请大家给个合理的思路。
    存考勤用什么方式进行为好?
    1。从1号到31号,是不是每天设一个字段好。每个字段对应每在的情况,这样还有问题,就是无法区别上下午,所以每名员工就要有两条记录,上午一条,下午一条,这觉得这是尽量减少字段数和记录数的办法了,因为每个人每月仅要二条记录就行了。可是在表格中就要一个id对应一条记录,因为有上下午,所以就有二条记录,主管说每人两条记录太乱,能不能一个id对应上,下午,我说那是不可能的。因为一个id要代表一条记录呀?一条记录如何能再分出来上下午呢?
    2。换个思路,上午一个字段,下午一个字段,则表中要有62个字段,还不算其他信息,字段太多了,
    而且也不便于打印时按日期显示,(打印时要一天对应一列呀)
      

  3.   

    我以前也写过考勤的:
    对于保存考勤纪录内容,我认为主要有两中方法,说出来大家讨论一下,也希望大家说出自己的想法:
    第一种:就是考勤一次九一条纪录,在考勤的时候不考虑考勤的时间是否符合规定,考勤一次就记录一次。直到出单的时候在判断。这种方法考勤程序比较容易写,计算考勤,出单的程序写起来就较为麻烦一些。
    结构如下:
    EmoloyeeID   DateTime
    J021         2005-4-25 7:30:30第二种:一天考勤6次,记录只有一条,考勤时候需要判断考勤的时间是否符合规定。这种写法,在计算考勤,出单时候比较方便。当时结构比较死,功能也不利于以后扩展。
    结构如下:
    EmployeeID 上午上班 上午下班 下午上班 下午下班 晚上上班 晚上上班 跨天 日期
    J021        7:30   11:32    12:00    16:50  17:34    20:35    F   2005-4-25请大家讨论一下,我个人比较喜欢第一种方法!
      

  4.   

    pasl(阿龙1) 我虽然没做过考勤
    我也喜欢你的第一种方法,扩展性比较好