create table class_course ( id bigint not null comment '主键ID(由程序生成,不自增)' primary key, class_id bigint not null comment '所属班级ID(关联training_class.id)', course_name varchar(200) not null comment '课程名称', course_id bigint not null comment '课程id', courseware_id text not null comment '课件id集合', required_total_hours decimal(10, 2) null comment '要求完成总学时(小时)', video_duration decimal(10, 2) null comment '视频累计时长(小时)', delete_enum varchar(32) null comment '删除标识true false', remarks varchar(255) null comment '备注', create_name varchar(50) null comment '创建人姓名', update_name varchar(50) null comment '更新人姓名', tenant_id bigint null comment '租户id', version int null comment '版本', create_time datetime null comment '创建时间', update_time datetime null comment '修改时间', create_id bigint null comment '创建人id', update_id bigint null comment '修改人id', env varchar(50) null comment '环境' ) comment '课程管理表' charset = utf8mb4; create index idx_class_id on class_course (class_id); create table class_management ( id bigint unsigned zerofill not null comment '主键ID(由程序生成,不自增)' primary key, class_code varchar(50) null comment '班级编码(唯一)', class_name varchar(100) null comment '班级名称', training_type varchar(50) null comment '培训类型', unit_type int null comment '参训单位类型(1本企业2相关方)', unit_name varchar(100) null comment '参训单位名称', recorder varchar(50) null comment '记录人员(姓名或ID)', assessor varchar(50) null comment '考核人员(姓名或ID)', safety_manager varchar(50) null comment '安全管理部门负责人(姓名或ID)', start_date datetime null comment '培训开始日期', end_date datetime null comment '培训结束日期', open_exam tinyint(1) default 0 null comment '是否开启考试(0-否,1-是)', exam_face_recognition tinyint(1) default 0 null comment '考试前人脸识别(0-否,1-是)', exam_count int null comment '考试次数', face_recognition tinyint(1) default 0 null comment '是否人脸识别(0-否,1-是)', face_recognition_time int null comment '人脸识别时间(分钟,可选5/10/20/30)', shuffle_questions tinyint(1) default 0 null comment '是否打乱试题顺序(0-否,1-是)', status int default 0 null comment '班级状态:0-未申请,1-待开班,2-培训中,3-培训结束', delete_enum varchar(32) null comment '删除标识true false', remarks varchar(255) null comment '备注', create_name varchar(50) null comment '创建人姓名', update_name varchar(50) null comment '更新人姓名', tenant_id bigint null comment '租户id', version int null comment '版本', create_time datetime null comment '创建时间', update_time datetime null comment '修改时间', create_id bigint null comment '创建人id', update_id bigint null comment '修改人id', env varchar(50) null comment '环境', delay_time datetime null comment '延期时间', paper_type int null comment '试卷类型(如:1自动生成试卷、2平台组卷等)', exam_minutes int null comment '考试时长(分钟)', paper_id bigint null comment '试卷id' ) comment '班级管理表' charset = utf8mb4; create table class_student ( id bigint not null comment '主键ID(由程序生成,不自增)' primary key, class_id bigint not null comment '关联班级ID(training_class.id)', student_name varchar(50) null comment '姓名', unit_name varchar(100) null comment '参训单位', department varchar(100) null comment '部门', phone varchar(20) null comment '手机号', file_number varchar(50) null comment '档案编号', face_auth tinyint(1) default 0 null comment '人脸认证(0-未认证,1-已认证)', required_hours decimal(10, 2) null comment '要求学时(小时)', completed_hours decimal(10, 2) default 0.00 null comment '已完成学时(小时)', study_status int default 0 null comment '学习状态:0-未学习,1-学习中,2-已学完,3-已完成', exam_status int default 0 null comment '考试状态:0-不考试,1-待考试,2-考试未通过,3-考试通过,4-未参加', entry_time datetime null comment '入班时间', delete_enum varchar(32) null comment '删除标识true false', remarks varchar(255) null comment '备注', create_name varchar(50) null comment '创建人姓名', update_name varchar(50) null comment '更新人姓名', tenant_id bigint null comment '租户id', version int null comment '版本', create_time datetime null comment '创建时间', update_time datetime null comment '修改时间', create_id bigint null comment '创建人id', update_id bigint null comment '修改人id', env varchar(50) null comment '环境' ) comment '班级学员学习记录表' charset = utf8mb4; create index idx_class_id on class_student (class_id); create table class_student_exam_record ( id bigint not null comment '主键ID(由程序生成,不自增)' primary key, student_id bigint not null comment '学员ID(关联class_student.id)', student_name varchar(20) not null comment '学员名称', class_id bigint not null comment '所属班级ID(关联training_class.id)', paper_name varchar(200) not null comment '试卷名称', paper_id bigint not null comment '试卷id', score decimal(10, 2) null comment '得分', passed tinyint(1) default 0 null comment '是否通过(0-未通过,1-通过)', wrong_count int default 0 null comment '错误题数', accuracy decimal(5, 2) null comment '正确率(百分比,如 96.66)', start_time datetime null comment '考试开始时间', end_time datetime null comment '考试结束时间', delete_enum varchar(32) null comment '删除标识true false', remarks varchar(255) null comment '备注', create_name varchar(50) null comment '创建人姓名', update_name varchar(50) null comment '更新人姓名', tenant_id bigint null comment '租户id', version int null comment '版本', create_time datetime null comment '创建时间', update_time datetime null comment '修改时间', create_id bigint null comment '创建人id', update_id bigint null comment '修改人id', env varchar(50) null comment '环境' ) comment '学员考试记录表' charset = utf8mb4; create index idx_student_id on class_student_exam_record (student_id); create table class_student_learning_record ( id bigint not null comment '主键ID(由程序生成,不自增)' primary key, student_id bigint not null comment '学员ID(关联class_student.id)', class_id bigint not null comment '所属班级ID(关联training_class.id)', course_id bigint not null comment '课程ID(关联training_course.id)', course_name varchar(200) not null comment '课程名称', courseware_name varchar(200) null comment '小节点名称(如章节名、视频文件名)', study_status int default 0 null comment '学习状态:0-未学习,1-学习中,2-已完成', learning_progress varchar(50) null comment '学习情况(如进度百分比或简要描述,冗余字段便于展示)', start_time datetime null comment '开始学习时间(第一次开始观看/学习的时间)', end_time datetime null comment '完成时间(标记为“已学完”或“已完成”的时间)', last_watch_time datetime null comment '最近观看时间(最后一条学习行为的时间戳)', delete_enum varchar(32) null comment '删除标识true false', remarks varchar(255) null comment '备注', create_name varchar(50) null comment '创建人姓名', update_name varchar(50) null comment '更新人姓名', tenant_id bigint null comment '租户id', version int null comment '版本', create_time datetime null comment '创建时间', update_time datetime null comment '修改时间', create_id bigint null comment '创建人id', update_id bigint null comment '修改人id', env varchar(50) null comment '环境' ) comment '学员学习记录表(节点级)' charset = utf8mb4; create index idx_course_id on class_student_learning_record (course_id); create index idx_student_id on class_student_learning_record (student_id); create index idx_study_status on class_student_learning_record (study_status);