Files
hzdyjs/docs/设计文档/database/学工管理-学生信息管理/02-batch-student-relation.sql
T
2025-07-19 10:18:27 +08:00

47 lines
2.3 KiB
SQL

-- 第一阶段:创建批次学生关联表
-- 说明:用于快速查询和统计批次中的学生
-- 1. 创建批次学生关联表
CREATE TABLE xg_collection_batch_student (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
batch_id BIGINT NOT NULL COMMENT '批次ID',
student_id BIGINT NOT NULL COMMENT '学生ID',
student_code VARCHAR(50) NOT NULL COMMENT '学号',
student_name VARCHAR(100) NOT NULL COMMENT '学生姓名',
college_id BIGINT COMMENT '学院ID',
college_name VARCHAR(100) COMMENT '学院名称',
major_id BIGINT COMMENT '专业ID',
major_name VARCHAR(100) COMMENT '专业名称',
class_id BIGINT COMMENT '班级ID',
class_name VARCHAR(100) COMMENT '班级名称',
grade VARCHAR(50) COMMENT '届别',
can_edit TINYINT DEFAULT 1 COMMENT '是否可编辑',
has_submitted TINYINT DEFAULT 0 COMMENT '是否已提交',
submit_time DATETIME COMMENT '提交时间',
last_edit_time DATETIME COMMENT '最后编辑时间',
edit_count INT DEFAULT 0 COMMENT '编辑次数',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT COMMENT '创建者',
update_by BIGINT COMMENT '更新者',
deleted TINYINT DEFAULT 0 COMMENT '删除标志',
tenant_id BIGINT DEFAULT 0 COMMENT '租户ID'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次学生关联表';
-- 2. 创建索引
CREATE INDEX idx_batch_id ON xg_collection_batch_student(batch_id);
CREATE INDEX idx_student_id ON xg_collection_batch_student(student_id);
CREATE INDEX idx_batch_student ON xg_collection_batch_student(batch_id, student_id);
CREATE INDEX idx_college_id ON xg_collection_batch_student(college_id);
CREATE INDEX idx_grade ON xg_collection_batch_student(grade);
CREATE INDEX idx_create_time ON xg_collection_batch_student(create_time);
CREATE INDEX idx_has_submitted ON xg_collection_batch_student(has_submitted);
CREATE INDEX idx_deleted ON xg_collection_batch_student(deleted);
-- 3. 创建外键约束
ALTER TABLE xg_collection_batch_student
ADD CONSTRAINT fk_batch_student_batch
FOREIGN KEY (batch_id) REFERENCES xg_collection_batch(id) ON DELETE CASCADE;
-- 验证创建
SELECT 'Batch student relation table created!' as message;