168 lines
9.4 KiB
MySQL
168 lines
9.4 KiB
MySQL
|
|
use school_news;
|
|||
|
|
-- 操作日志表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_operation_log`;
|
|||
|
|
CREATE TABLE `tb_sys_operation_log` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '日志ID',
|
|||
|
|
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
|||
|
|
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
|
|||
|
|
`module` VARCHAR(100) DEFAULT NULL COMMENT '操作模块',
|
|||
|
|
`operation` VARCHAR(100) DEFAULT NULL COMMENT '操作类型',
|
|||
|
|
`method` VARCHAR(200) DEFAULT NULL COMMENT '请求方法',
|
|||
|
|
`request_url` VARCHAR(500) DEFAULT NULL COMMENT '请求URL',
|
|||
|
|
`request_method` VARCHAR(20) DEFAULT NULL COMMENT '请求方式(GET/POST等)',
|
|||
|
|
`request_params` TEXT COMMENT '请求参数',
|
|||
|
|
`response_data` TEXT COMMENT '响应数据',
|
|||
|
|
`ip_address` VARCHAR(45) DEFAULT NULL COMMENT 'IP地址',
|
|||
|
|
`ip_source` VARCHAR(100) DEFAULT NULL COMMENT 'IP来源',
|
|||
|
|
`browser` VARCHAR(100) DEFAULT NULL COMMENT '浏览器',
|
|||
|
|
`os` VARCHAR(100) DEFAULT NULL COMMENT '操作系统',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '操作状态(0失败 1成功)',
|
|||
|
|
`error_message` TEXT COMMENT '错误消息',
|
|||
|
|
`execute_time` INT(11) DEFAULT 0 COMMENT '执行时长(毫秒)',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user` (`user_id`),
|
|||
|
|
KEY `idx_module` (`module`),
|
|||
|
|
KEY `idx_create_time` (`create_time`),
|
|||
|
|
KEY `idx_status` (`status`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='操作日志表';
|
|||
|
|
|
|||
|
|
-- 系统配置表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_config`;
|
|||
|
|
CREATE TABLE `tb_sys_config` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '配置ID',
|
|||
|
|
`config_key` VARCHAR(100) NOT NULL COMMENT '配置键',
|
|||
|
|
`config_value` TEXT COMMENT '配置值',
|
|||
|
|
`config_type` VARCHAR(50) DEFAULT 'string' COMMENT '配置类型(string/number/boolean/json)',
|
|||
|
|
`config_group` VARCHAR(50) DEFAULT NULL COMMENT '配置分组',
|
|||
|
|
`description` VARCHAR(255) DEFAULT NULL COMMENT '配置描述',
|
|||
|
|
`is_system` TINYINT(1) 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_config_key` (`config_key`),
|
|||
|
|
KEY `idx_group` (`config_group`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统配置表';
|
|||
|
|
|
|||
|
|
-- 插入默认系统配置
|
|||
|
|
INSERT INTO `tb_sys_config` (id, config_key, config_value, config_type, config_group, description, is_system, creator, create_time) VALUES
|
|||
|
|
('1', 'system.platform.name', '思政学习平台', 'string', 'platform', '平台名称', 1, '1', now()),
|
|||
|
|
('2', 'system.platform.logo', '/assets/logo.png', 'string', 'platform', '平台Logo', 1, '1', now()),
|
|||
|
|
('3', 'system.platform.school_badge', '/assets/school_badge.png', 'string', 'platform', '学校校徽', 1, '1', now()),
|
|||
|
|
('4', 'system.menu.home', '首页', 'string', 'menu', '首页菜单名称', 0, '1', now()),
|
|||
|
|
('5', 'system.menu.resource', '资源中心', 'string', 'menu', '资源中心菜单名称', 0, '1', now()),
|
|||
|
|
('6', 'system.menu.learning', '学习计划', 'string', 'menu', '学习计划菜单名称', 0, '1', now()),
|
|||
|
|
('7', 'system.menu.activity', '专题活动', 'string', 'menu', '专题活动菜单名称', 0, '1', now()),
|
|||
|
|
('8', 'system.menu.culture', '红色常信', 'string', 'menu', '红色常信菜单名称', 0, '1', now()),
|
|||
|
|
('9', 'system.banner.auto_play', 'true', 'boolean', 'banner', 'Banner自动播放', 0, '1', now()),
|
|||
|
|
('10', 'system.banner.interval', '5000', 'number', 'banner', 'Banner切换间隔(毫秒)', 0, '1', now()),
|
|||
|
|
('11', 'system.resource.auto_publish', 'false', 'boolean', 'resource', '资源自动发布', 0, '1', now()),
|
|||
|
|
('12', 'system.resource.auto_publish_time', '08:00', 'string', 'resource', '自动发布时间', 0, '1', now()),
|
|||
|
|
('13', 'system.ai.enabled', 'true', 'boolean', 'ai', '是否启用智能体', 0, '1', now());
|
|||
|
|
|
|||
|
|
-- 系统访问统计表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_visit_statistics`;
|
|||
|
|
CREATE TABLE `tb_sys_visit_statistics` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '统计ID',
|
|||
|
|
`stat_date` DATE NOT NULL COMMENT '统计日期',
|
|||
|
|
`total_visits` INT(11) DEFAULT 0 COMMENT '总访问量',
|
|||
|
|
`unique_visitors` INT(11) DEFAULT 0 COMMENT '独立访客数',
|
|||
|
|
`new_users` INT(11) DEFAULT 0 COMMENT '新增用户数',
|
|||
|
|
`active_users` INT(11) DEFAULT 0 COMMENT '活跃用户数',
|
|||
|
|
`page_views` INT(11) DEFAULT 0 COMMENT '页面浏览量',
|
|||
|
|
`avg_visit_duration` 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_stat_date` (`stat_date`),
|
|||
|
|
KEY `idx_date` (`stat_date`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统访问统计表';
|
|||
|
|
|
|||
|
|
-- 通知表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_notification`;
|
|||
|
|
CREATE TABLE `tb_sys_notification` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '通知ID',
|
|||
|
|
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
|||
|
|
`type` INT(4) DEFAULT 1 COMMENT '通知类型(1系统通知 2任务通知 3成就通知)',
|
|||
|
|
`title` VARCHAR(255) NOT NULL COMMENT '通知标题',
|
|||
|
|
`content` TEXT COMMENT '通知内容',
|
|||
|
|
`link_type` INT(4) DEFAULT NULL COMMENT '链接类型(1资源 2课程 3任务)',
|
|||
|
|
`link_id` VARCHAR(50) DEFAULT NULL COMMENT '链接ID',
|
|||
|
|
`is_read` TINYINT(1) DEFAULT 0 COMMENT '是否已读',
|
|||
|
|
`read_time` TIMESTAMP NULL DEFAULT NULL COMMENT '阅读时间',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user` (`user_id`),
|
|||
|
|
KEY `idx_is_read` (`is_read`),
|
|||
|
|
KEY `idx_create_time` (`create_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统通知表';
|
|||
|
|
|
|||
|
|
-- 文件上传记录表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_file`;
|
|||
|
|
CREATE TABLE `tb_sys_file` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '文件ID',
|
|||
|
|
`file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
|
|||
|
|
`original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
|
|||
|
|
`file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
|
|||
|
|
`file_url` VARCHAR(500) DEFAULT NULL COMMENT '访问URL',
|
|||
|
|
`file_size` BIGINT(20) DEFAULT 0 COMMENT '文件大小(字节)',
|
|||
|
|
`file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型',
|
|||
|
|
`mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型',
|
|||
|
|
`module` VARCHAR(50) DEFAULT NULL COMMENT '所属模块',
|
|||
|
|
`business_id` VARCHAR(50) DEFAULT NULL COMMENT '业务ID',
|
|||
|
|
`uploader` VARCHAR(50) DEFAULT NULL COMMENT '上传者',
|
|||
|
|
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_module` (`module`),
|
|||
|
|
KEY `idx_business` (`business_id`),
|
|||
|
|
KEY `idx_uploader` (`uploader`),
|
|||
|
|
KEY `idx_create_time` (`create_time`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='文件上传记录表';
|
|||
|
|
|
|||
|
|
-- 数据字典表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_dict_type`;
|
|||
|
|
CREATE TABLE `tb_sys_dict_type` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '字典类型ID',
|
|||
|
|
`dict_type` VARCHAR(100) NOT NULL COMMENT '字典类型',
|
|||
|
|
`dict_name` VARCHAR(100) NOT NULL COMMENT '字典名称',
|
|||
|
|
`description` VARCHAR(255) DEFAULT NULL COMMENT '描述',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '状态(0禁用 1启用)',
|
|||
|
|
`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_dict_type` (`dict_type`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典类型表';
|
|||
|
|
|
|||
|
|
-- 数据字典详情表
|
|||
|
|
DROP TABLE IF EXISTS `tb_sys_dict_data`;
|
|||
|
|
CREATE TABLE `tb_sys_dict_data` (
|
|||
|
|
`id` VARCHAR(50) NOT NULL COMMENT '字典数据ID',
|
|||
|
|
`dict_type` VARCHAR(100) NOT NULL COMMENT '字典类型',
|
|||
|
|
`dict_label` VARCHAR(100) NOT NULL COMMENT '字典标签',
|
|||
|
|
`dict_value` VARCHAR(100) NOT NULL COMMENT '字典值',
|
|||
|
|
`dict_sort` INT(4) DEFAULT 0 COMMENT '排序',
|
|||
|
|
`css_class` VARCHAR(100) DEFAULT NULL COMMENT '样式类',
|
|||
|
|
`list_class` VARCHAR(100) DEFAULT NULL COMMENT '列表样式',
|
|||
|
|
`is_default` TINYINT(1) DEFAULT 0 COMMENT '是否默认',
|
|||
|
|
`status` INT(4) DEFAULT 1 COMMENT '状态(0禁用 1启用)',
|
|||
|
|
`remark` VARCHAR(255) DEFAULT NULL 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`),
|
|||
|
|
KEY `idx_dict_type` (`dict_type`),
|
|||
|
|
KEY `idx_dict_sort` (`dict_sort`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典数据表';
|
|||
|
|
|