Files
schoolNews/schoolNewsServ/.bin/mysql/sql/createTableLearning.sql
2025-10-22 17:57:30 +08:00

135 lines
7.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

use school_news;
-- 学习计划/任务表
DROP TABLE IF EXISTS `tb_learning_task`;
CREATE TABLE `tb_learning_task` (
`id` VARCHAR(50) NOT NULL COMMENT '任务ID',
`task_id` VARCHAR(50) NOT NULL COMMENT '任务唯一标识',
`name` VARCHAR(255) NOT NULL COMMENT '任务名称',
`description` TEXT COMMENT '任务描述',
`start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '开始时间',
`end_time` TIMESTAMP NULL DEFAULT NULL COMMENT '结束时间',
`status` INT(4) DEFAULT 1 COMMENT '状态0草稿 1进行中 2已结束',
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_id` (`task_id`),
KEY `idx_status` (`status`),
KEY `idx_time` (`start_time`, `end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='学习任务表';
-- 任务关联资源表
DROP TABLE IF EXISTS `tb_task_resource`;
CREATE TABLE `tb_task_resource` (
`id` VARCHAR(50) NOT NULL COMMENT '关联ID',
`task_id` VARCHAR(50) NOT NULL COMMENT '任务ID',
`resource_id` VARCHAR(50) NOT NULL COMMENT '资源ID',
`required` TINYINT(1) DEFAULT 1 COMMENT '是否必须完成',
`order_num` INT(4) DEFAULT 0 COMMENT '排序号',
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_resource` (`task_id`, `resource_id`),
KEY `idx_task` (`task_id`),
KEY `idx_resource` (`resource_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='任务资源关联表';
-- 任务关联课程表
DROP TABLE IF EXISTS `tb_task_course`;
CREATE TABLE `tb_task_course` (
`id` VARCHAR(50) NOT NULL COMMENT '关联ID',
`task_id` VARCHAR(50) NOT NULL COMMENT '任务ID',
`course_id` VARCHAR(50) NOT NULL COMMENT '课程ID',
`required` TINYINT(1) DEFAULT 1 COMMENT '是否必须完成',
`order_num` INT(4) DEFAULT 0 COMMENT '排序号',
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_course` (`task_id`, `course_id`),
KEY `idx_task` (`task_id`),
KEY `idx_course` (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='任务课程关联表';
-- 任务接收人员表
DROP TABLE IF EXISTS `tb_task_user`;
CREATE TABLE `tb_task_user` (
`id` VARCHAR(50) NOT NULL COMMENT '关联ID',
`task_id` VARCHAR(50) NOT NULL COMMENT '任务ID',
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
`dept_id` VARCHAR(50) DEFAULT NULL COMMENT '部门ID',
`status` INT(4) DEFAULT 0 COMMENT '完成状态0未完成 1已完成',
`progress` DECIMAL(5,2) DEFAULT 0.00 COMMENT '完成进度0-100',
`complete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '完成时间',
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_user` (`task_id`, `user_id`),
KEY `idx_task` (`task_id`),
KEY `idx_user` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='任务用户表';
-- 学习记录表
DROP TABLE IF EXISTS `tb_learning_record`;
CREATE TABLE `tb_learning_record` (
`id` VARCHAR(50) NOT NULL COMMENT '记录ID',
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
`resource_type` INT(4) NOT NULL COMMENT '资源类型1资源 2课程 3章节',
`resource_id` VARCHAR(50) NOT NULL COMMENT '资源ID',
`task_id` VARCHAR(50) DEFAULT NULL COMMENT '任务ID',
`duration` INT(11) DEFAULT 0 COMMENT '学习时长(秒)',
`progress` DECIMAL(5,2) DEFAULT 0.00 COMMENT '学习进度0-100',
`is_complete` TINYINT(1) DEFAULT 0 COMMENT '是否完成',
`complete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '完成时间',
`last_learn_time` TIMESTAMP NULL DEFAULT NULL COMMENT '最后学习时间',
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`),
KEY `idx_user` (`user_id`),
KEY `idx_resource` (`resource_type`, `resource_id`),
KEY `idx_task` (`task_id`),
KEY `idx_learn_time` (`last_learn_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='学习记录表';
-- 学习统计表(按天统计)
DROP TABLE IF EXISTS `tb_learning_statistics`;
CREATE TABLE `tb_learning_statistics` (
`id` VARCHAR(50) NOT NULL COMMENT '统计ID',
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
`stat_date` DATE NOT NULL COMMENT '统计日期',
`total_duration` INT(11) DEFAULT 0 COMMENT '总学习时长(秒)',
`resource_count` INT(11) DEFAULT 0 COMMENT '学习资源数量',
`course_count` INT(11) DEFAULT 0 COMMENT '学习课程数量',
`complete_count` INT(11) DEFAULT 0 COMMENT '完成数量',
`creator` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`updater` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_date` (`user_id`, `stat_date`),
KEY `idx_user` (`user_id`),
KEY `idx_date` (`stat_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='学习统计表';