1. 创建网络课程数据库和表结构:
CREATE DATABASE 网络教学平台;
USE 网络教学平台;
CREATE TABLE 章节表 (
章节ID INT PRIMARY KEY,
章节名称 VARCHAR(255),
试题数量 INT
);
CREATE TABLE 题库表 (
试题ID INT PRIMARY KEY,
试题内容 TEXT,
标准答案 TEXT,
题型 VARCHAR(255),
难度 VARCHAR(255),
章节ID INT,
FOREIGN KEY (章节ID) REFERENCES 章节表(章节ID)
);
CREATE TABLE 班级表 (
班级ID INT PRIMARY KEY,
班级名称 VARCHAR(255),
班级人数 INT,
教师ID INT
);
CREATE TABLE 学生表 (
学生ID INT PRIMARY KEY,
学生帐号 VARCHAR(255),
学生姓名 VARCHAR(255),
口令 VARCHAR(255),
班级ID INT,
FOREIGN KEY (班级ID) REFERENCES 班级表(班级ID)
);
CREATE TABLE 试卷总表 (
试卷总表ID INT PRIMARY KEY,
学生ID INT,
开始时间 DATETIME,
结束时间 DATETIME,
状态 VARCHAR(255),
分数 INT
);
CREATE TABLE 试卷明细表 (
试卷明细ID INT PRIMARY KEY,
试卷总表ID INT,
试题ID INT,
答案 TEXT,
得分 INT,
FOREIGN KEY (试卷总表ID) REFERENCES 试卷总表(试卷总表ID),
FOREIGN KEY (试题ID) REFERENCES 题库表(试题ID)
);
2. 创建触发器:
DELIMITER //
CREATE TRIGGER insert_学生_update_班级
AFTER INSERT ON 学生表
FOR EACH ROW
BEGIN
UPDATE 班级表
SET 班级人数 = 班级人数 + 1
WHERE 班级ID = NEW.班级ID;
END;
//
DELIMITER ;
3. 创建存储过程:
DELIMITER //
CREATE PROCEDURE insert_学生表(IN p_学生帐号 VARCHAR(255), IN p_学生姓名 VARCHAR(255), IN p_口令 VARCHAR(255), IN p_班级ID INT)
BEGIN
INSERT INTO 学生表 (学生帐号, 学生姓名, 口令, 班级ID)
VALUES (p_学生帐号, p_学生姓名, p_口令, p_班级ID);
END;
//
DELIMITER ;