stu14/sql/init.sql
2024-12-24 14:00:56 +08:00

69 lines
4.6 KiB
SQL

-- 创建数据库
CREATE DATABASE IF NOT EXISTS absence_manager DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE absence_manager;
-- 创建学生表
CREATE TABLE IF NOT EXISTS students (
id INT PRIMARY KEY AUTO_INCREMENT,
student_id VARCHAR(20) UNIQUE NOT NULL, -- 学号
name VARCHAR(50) NOT NULL, -- 姓名
class_name VARCHAR(50) NOT NULL, -- 班级
contact VARCHAR(20), -- 联系方式
college VARCHAR(50) NOT NULL, -- 学院
major VARCHAR(50) NOT NULL, -- 专业
password VARCHAR(50) NOT NULL -- 密码
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';
-- 创建教师表
CREATE TABLE IF NOT EXISTS teachers (
id INT PRIMARY KEY AUTO_INCREMENT,
teacher_id VARCHAR(20) UNIQUE NOT NULL, -- 工号
name VARCHAR(50) NOT NULL, -- 姓名
department VARCHAR(50) NOT NULL, -- 部门
contact VARCHAR(20), -- 联系方式
password VARCHAR(50) NOT NULL -- 密码
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='教师信息表';
-- 创建请假申请表
CREATE TABLE IF NOT EXISTS leave_requests (
id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL, -- 关联学生ID
start_time DATETIME NOT NULL, -- 开始时间
end_time DATETIME NOT NULL, -- 结束时间
duration DECIMAL(5,2) NOT NULL, -- 时长
location VARCHAR(100) NOT NULL, -- 外出地址
reason_type VARCHAR(50) NOT NULL, -- 外出事由类型
reason_detail TEXT, -- 详细事由
is_leaving_city BOOLEAN DEFAULT FALSE, -- 是否离津
status VARCHAR(20) NOT NULL DEFAULT 'PENDING', -- 审批状态
approver_id INT, -- 审批人ID
approval_comment TEXT, -- 审批意见
request_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 申请时间
approval_time TIMESTAMP NULL, -- 审批时间
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (approver_id) REFERENCES teachers(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='请假申请表';
-- 插入示例数据
INSERT INTO students (student_id, name, class_name, contact, college, major, password) VALUES
('2023208145', '李同学', '云计算G23-1', '15842087237', '信息工程学院', '云计算技术应用', '123456'),
('2023208146', '张同学', '云计算G23-1', '15842087238', '信息工程学院', '云计算技术应用', '123456');
INSERT INTO teachers (teacher_id, name, department, contact, password) VALUES
('2023001', '王老师', '信息工程学院', '13912345678', '123456'),
('2023002', '李老师', '信息工程学院', '13912345679', '123456');
-- 插入请假申请示例数据
INSERT INTO leave_requests (student_id, start_time, end_time, duration, location, reason_type, reason_detail, is_leaving_city, status, approver_id, approval_comment, request_time) VALUES
(1, '2024-01-15 08:00:00', '2024-01-15 17:00:00', 9.00, '天津市河西区图书馆', '学习', '去图书馆学习准备考试', false, 'APPROVED', 1, '同意', '2024-01-14 10:00:00'),
(2, '2024-01-16 13:00:00', '2024-01-16 17:30:00', 4.50, '天津市南开医院', '就医', '牙科复诊', false, 'APPROVED', 1, '注意安全', '2024-01-15 09:30:00'),
(1, '2024-01-17 09:00:00', '2024-01-17 12:00:00', 3.00, '天津市档案馆', '办事', '办理个人档案', false, 'PENDING', null, null, '2024-01-16 16:20:00'),
(2, '2024-01-18 14:00:00', '2024-01-18 18:00:00', 4.00, '和平区文化中心', '活动', '参加志愿者活动', false, 'REJECTED', 2, '活动时间与课程冲突', '2024-01-17 11:15:00'),
(1, '2024-01-19 10:00:00', '2024-01-19 16:00:00', 6.00, '天津站', '返乡', '购买返乡车票', true, 'APPROVED', 2, '请注意防疫', '2024-01-18 14:40:00'),
(2, '2024-01-20 09:30:00', '2024-01-20 11:30:00', 2.00, '河西区人才市场', '求职', '参加招聘会', false, 'PENDING', null, null, '2024-01-19 17:00:00'),
(1, '2024-01-21 13:00:00', '2024-01-21 17:00:00', 4.00, '天津市第一中心医院', '就医', '例行体检', false, 'APPROVED', 1, '准假', '2024-01-20 10:25:00'),
(2, '2024-01-22 08:00:00', '2024-01-22 18:00:00', 10.00, '滨海新区图书馆', '实习', '企业实地考察', false, 'PENDING', null, null, '2024-01-21 15:30:00'),
(1, '2024-01-23 14:00:00', '2024-01-23 16:00:00', 2.00, '南开区政务中心', '办事', '办理身份证', false, 'APPROVED', 2, '同意', '2024-01-22 09:45:00'),
(2, '2024-01-24 09:00:00', '2024-01-24 18:00:00', 9.00, '天津市人民医院', '就医', '陪同父亲做检查', false, 'PENDING', null, null, '2024-01-23 16:50:00');