1. 以下是4张数据表,数据库为MySQL
--学生表
CREATE TABLE `STUDENT` (
`ID` BIGINT NOT NULL,
`NAME` VARCHAR(50) NOT NULL, -- 姓名
`SEX` tinyint(1) NOT NULL, -- 性别
`STATUS` INT NOT NULL,-- 状态 0:在校、1:请假、2:离校、3:退学、4:数据作废
`JOINTIME` DATETIME NOT NULL, -- 入学时间
PRIMARY KEY (`ID`),
KEY `INDEX_STUDENT` (`STATUS`,`JOINTIME`)
) DEFAULT CHARSET=utf8mb4
-- 班级表
CREATE TABLE `CLASSINFO`(
`ID` BIGINT NOT NULL,
`NAME` VARCHAR(5) NOT NULL, -- 班级名称
'GRADE' INT NOT NULL, --年级
PRIMARY KEY (`ID`)
) DEFAULT CHARSET=utf8mb4
-- 学生班级表
CREATE TABLE `STUDENTCLASS`(
`ID` BIGINT NOT NULL,
`STUDENTID` BIGINT NOT NULL, --学生ID
`CLASSID` BIGINT NOT NULL, --班级ID
`JOINTIME` DATETIME NOT NULL, --加入时间
PRIMARY KEY (`ID`),
KEY `INDEX_STUDENTCLASS` (`JOINTIME`,`CLASSID`,`STUDENTID`)
) DEFAULT CHARSET=utf8mb4
-- 考试表
CREATE TABLE `EXAMINATION`(
`ID` BIGINT NOT NULL,
`TITLE` VARCHAR(100) NOT NULL, --标题
`CREATEDATETIME` DATETIME NOT NULL, --考试时间
PRIMARY KEY (`ID`),
KEY `INDEX_EXAMINATION` (`CREATEDATETIME`)
) DEFAULT CHARSET=utf8mb4
-- 考试成绩表
CREATE TABLE `SCORES`(
`ID` BIGINT NOT NULL,
`STUDENTID` BIGINT NOT NULL, --学生ID
`EXAMINATIONID` BIGINT NOT NULL, --考试ID
`SUBJECT` INT NOT NULL, --科目 0:语文,1:数学,2:英语
`VALUE` DECIMAL(4,1) NOT NULL, --分数
PRIMARY KEY (`ID`),
KEY `INDEX_SCORES` (`SUBJECT`,`EXAMINATIONID`,`STUDENTID`)
) DEFAULT CHARSET=utf8mb4
注意:
(1). 学生有换班的情况 【要作历史数据保存,保存更换前有数据,可以作历史数据查询】