问题描述
现在我用struts2+hibernate+spring写一个单位值班程序,现实情况是每个人值班一个星期,下个星期就是另一个人值班.我目前是这样做的:建两个表,一个是值班排布表(duty),另一个是值班明细表(dutyinfo).duty表里有值班人姓名(username)和值班顺序ID(orderid),dutyinfo表里有username,orderid,值班开始时间(begintime)和值班结束时间(endtime).我写得有一个排班方法:就是每到星期一根据传到的ID和duty表里的总记录比较,如果ID<总记录数,那么返回ID+1,如果ID=总记录,那么返回"1",其他就返回该ID.然后在action里根据排班方法返回的ID(其实就是获得本周的值班顺序ID)查到一条duty记录,保存在dutyinfo里.现在我想问下:1.我的思路有没有问题?2.有没有做个类似程序的,能不能给点更好一点的建议?3.就是当到星期一这一天,我每访问该action都会执行一遍该排班方法,很影响效率(当然你可以说根据dutyinfo里的时间叛断在这一周的记录是不是不为空,不为空就不执行,但我老觉得这思路有点笨,并且实现起到太绕了)4.访问该action我传了一个静态的值班顺序ID值,如何让他活起来?谢谢各位!
解决方案
1.你想到的现实情况太少了,不可能"每个人值班一个星期,下个星期就是另一个人值班",应该会存在中途换班的情况吧,例如A有事要请假,就没有人值班啦?2.duty和dutyinfo两张表都包含username,orderid字段,个人建议可以改成三张表,人员表,值班时间表,人员值班中间表。
时间: 2024-09-20 23:41:52