116 lines
5.8 KiB
MySQL
116 lines
5.8 KiB
MySQL
|
|
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 '创建时间',
|
|||
|
|
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 '创建时间',
|
|||
|
|
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 '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 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 '最后学习时间',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 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 '完成数量',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 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='学习统计表';
|
|||
|
|
|