初学Java,正在用Swing做一个学生考勤系统,目前只完成了简单的增删改,
在要做 查 的时候,遇到这样一个问题:
怎么从表中查询到总的考勤情况(比如,能查第一周至当前周的总的考勤),又可以查询到任意一周的考勤情况。
这样的数据库要如何设计呢? 恳请解答,谢谢了。
初学Java,正在用Swing做一个学生考勤系统,目前只完成了简单的增删改,
在要做 查 的时候,遇到这样一个问题:
怎么从表中查询到总的考勤情况(比如,能查第一周至当前周的总的考勤),又可以查询到任意一周的考勤情况。
这样的数据库要如何设计呢? 恳请解答,谢谢了。
当然,如果是我的话,数据库可能不是这样设计了
我会把 迟到,早退,旷课,病假,事假,公假放在一个字段,
可以为整形,这样要知道 1,2,3...表示什么意思,也可以用varchar型,直接放迟到,早退等,
再加个字段,用于说明一些情况,
CREATE TABLE attendance(
id INT AUTO_INCREMENT PRIMARY KEY,
姓名 INT NOT NULL,
考勤类型 VARCHAR(4) NOT NULL,
考勤说明 VARCHAR(50) ,
销假情况 VARCHAR(50) NOT NULL
logTime dateTime not null;
);
某人的总的情况 select * from attendance where 姓名 = 2
某人任一周的情况 select * from attendance where 姓名 = 2 and logTime between dt and DateAdd(d,7,dt);
如果要查某个在这个时间段内迟到多少次
某人任一周的情况 select * from attendance where 姓名 = 2 and logTime between dt and DateAdd(d,7,dt) and 考勤类型='迟到';