96 lines
4.5 KiB
SQL
96 lines
4.5 KiB
SQL
-- 学生操行分历史数据迁移 - 临时表创建脚本
|
|
-- 执行时间:2025-01-XX
|
|
-- 执行人:系统管理员
|
|
|
|
-- ===========================================
|
|
-- 临时表1:存储Excel原始数据
|
|
-- ===========================================
|
|
DROP TABLE IF EXISTS temp_conduct_score_import;
|
|
CREATE TABLE temp_conduct_score_import (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
student_no VARCHAR(50) NOT NULL COMMENT '学号',
|
|
student_name VARCHAR(100) COMMENT '姓名',
|
|
gender VARCHAR(10) COMMENT '性别',
|
|
ethnicity VARCHAR(50) COMMENT '民族',
|
|
academic_year_str VARCHAR(20) NOT NULL COMMENT '原始学年(2015-2016)',
|
|
semester_str VARCHAR(20) NOT NULL COMMENT '原始学期(第一学期/第二学期)',
|
|
monthly_scores TEXT NOT NULL COMMENT '平时分数(一月:90,九月:85...)',
|
|
final_score DECIMAL(5,2) COMMENT '最终分',
|
|
grade_level VARCHAR(20) COMMENT '等级',
|
|
department VARCHAR(100) COMMENT '院系',
|
|
major VARCHAR(100) COMMENT '专业',
|
|
class_name VARCHAR(100) COMMENT '班级',
|
|
grade VARCHAR(20) COMMENT '年级',
|
|
import_status VARCHAR(20) DEFAULT 'pending' COMMENT '导入状态(pending/processing/parsed/error)',
|
|
error_msg TEXT COMMENT '错误信息',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
INDEX idx_student_no (student_no),
|
|
INDEX idx_import_status (import_status),
|
|
INDEX idx_create_time (create_time)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生操行分Excel数据临时表';
|
|
|
|
-- ===========================================
|
|
-- 临时表2:解析后的月度分数中间表
|
|
-- ===========================================
|
|
DROP TABLE IF EXISTS temp_conduct_score_parsed;
|
|
CREATE TABLE temp_conduct_score_parsed (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
temp_id BIGINT NOT NULL COMMENT '关联临时表ID',
|
|
|
|
-- Excel原始字段(用于追溯)
|
|
student_no VARCHAR(50) NOT NULL COMMENT '学号',
|
|
academic_year_str VARCHAR(20) NOT NULL COMMENT '原始学年',
|
|
semester_str VARCHAR(20) NOT NULL COMMENT '原始学期',
|
|
|
|
-- 解析后字段
|
|
academic_year INT NOT NULL COMMENT '学年',
|
|
semester TINYINT NOT NULL COMMENT '学期(1/2)',
|
|
month TINYINT NOT NULL COMMENT '月份(1-12)',
|
|
score DECIMAL(5,2) NOT NULL COMMENT '月度分数',
|
|
|
|
-- 系统关联字段
|
|
student_id BIGINT COMMENT '学生ID',
|
|
class_id BIGINT COMMENT '班级ID',
|
|
class_teacher_id BIGINT COMMENT '班主任ID',
|
|
|
|
-- 扩展字段
|
|
remark VARCHAR(500) COMMENT '备注信息',
|
|
processing_status VARCHAR(20) DEFAULT 'parsed' COMMENT '处理状态(parsed/linked/imported/error)',
|
|
error_msg TEXT COMMENT '错误信息',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
-- 索引优化
|
|
INDEX idx_temp_id (temp_id),
|
|
INDEX idx_student_no (student_no),
|
|
INDEX idx_processing_status (processing_status),
|
|
INDEX idx_academic_year_semester (academic_year, semester),
|
|
INDEX idx_student_year_semester_month (student_no, academic_year, semester, month),
|
|
INDEX idx_create_time (create_time)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生操行分解析后中间表';
|
|
|
|
-- ===========================================
|
|
-- 迁移日志表(可选,用于记录详细的迁移过程)
|
|
-- ===========================================
|
|
DROP TABLE IF EXISTS temp_conduct_score_migration_log;
|
|
CREATE TABLE temp_conduct_score_migration_log (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
|
script_name VARCHAR(100) NOT NULL COMMENT '脚本名称',
|
|
operation VARCHAR(100) NOT NULL COMMENT '操作类型',
|
|
record_count INT DEFAULT 0 COMMENT '处理记录数',
|
|
success_count INT DEFAULT 0 COMMENT '成功数',
|
|
error_count INT DEFAULT 0 COMMENT '失败数',
|
|
error_details TEXT COMMENT '错误详情',
|
|
start_time DATETIME NOT NULL COMMENT '开始时间',
|
|
end_time DATETIME COMMENT '结束时间',
|
|
duration_seconds INT COMMENT '耗时(秒)',
|
|
status VARCHAR(20) DEFAULT 'running' COMMENT '状态(running/success/error)',
|
|
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
INDEX idx_script_operation (script_name, operation),
|
|
INDEX idx_status (status),
|
|
INDEX idx_create_time (create_time)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操行分迁移日志表';
|