34,838
社区成员




--考勤表,问题最多的是这个表,如果大家忙,可以只帮我看一下这个表,我感觉设计的很有问题,大家觉得考勤就一个表是否足够呢(要能满足上面---的要求)?是否多几个表来比较合适,比如请假单独一张表,等...
create table school.CheckOnWork --主要是这个考勤表,我觉得写的很烂,大家可不可以帮忙改看一下,或给些建议
(
s_id char(10) , --学生学号
k_weeks int, --这是星期几,比如星期天,一,二,等
k_week int, --这是第几周
k_lesson int, --这是一天中的第几节课
k_schoolyear char(10) , --这是哪能个学年
k_grade char(5), --这是学生的所在班级
IsLater char(2), --记录是否迟到
IsAbsent char(2), --记录是否制度
IsAskleave char(2),--记录是否请假
k_why char(50) --请假理由
);
--下面两个表是用户表,一个是学生的,一个是老师的,用来注册用的,大家觉得这样可以吗?有什么好的建议吗?
CREATE TABLE `s_user` (
`s_id` char(10) NOT NULL,
`s_name` char(10) default NULL,
`passwad` char(20) default NULL,
PRIMARY KEY (`s_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `t_user` (
`T_id` char(10) NOT NULL,
`T_name` char(10) default NULL,
`passwad` char(20) default NULL,
PRIMARY KEY (`T_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
--下面是班级表
CREATE TABLE classinfo (
c_grade char(5) NOT NULL,
c_directer char(10) default NULL,
c_dept char(5) default NULL,
c_amount int(11) default NULL,
c_checkwork char(5) default NULL,
PRIMARY KEY (c_grade)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
--下面是学生基本信息,这个倒没什么...自已考虑应该可以完成.
CREATE TABLE `student` (
`s_id` char(10) character set latin1 NOT NULL default '',
`s_name` char(10) default NULL,
`s_grade` char(5) default NULL,
`s_age` int(11) default NULL,
`s_phone` char(15) character set latin1 default NULL,
`s_address` varchar(50) default NULL,
`s_image` longblob,
`s_other` varchar(100) default NULL,
`s_borndata` datetime NOT NULL default '0000-00-00 00:00:00',
`s_sex` char(2) default NULL,
PRIMARY KEY (`s_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
--教师表
CREATE TABLE `teacher` (
`T_ID` char(10) NOT NULL,
`T_Name` char(10) default NULL,
`T_Age` int(11) default NULL,
`T_Phone` char(10) default NULL,
`T_Sex` char(5) default NULL,
PRIMARY KEY (`T_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Table_Attendance
StudentNo,AtDate, LessonNo,AtStatus,Reason
——————————————————————
00000001 ,2008/1/1,3 ,Late ,NULL
00000002 ,2008/2/9,5 ,Absent ,Sick
--00000001 在2008/1/1第3 节课迟到,没有原因。
--00000002 在2008/2/9第5 节课缺席,生病。