47 lines
2.3 KiB
SQL
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; |