145870 54ad97dab3 简化 1 неделя назад
..
README.md 54ad97dab3 简化 1 неделя назад
yushu_core.sql 54ad97dab3 简化 1 неделя назад
yushu_module_ai.sql 54ad97dab3 简化 1 неделя назад
yushu_module_mail.sql 54ad97dab3 简化 1 неделя назад

README.md

数据库脚本说明文档

脚本分类

核心系统脚本(必需)

系统运行的基础,必须导入:

脚本文件 说明 包含模块
yushu_core.sql 核心系统数据库 用户、角色、权限、菜单、部门、岗位、字典、配置、日志、定时任务(Quartz)、文件管理、消息中心、待办事项、错误日志

扩展模块脚本(可选)

根据业务需求选择性导入:

脚本文件 功能模块 说明
yushu_module_ai.sql AI助手 集成多家AI厂商(智谱、Kimi、OpenAI等),支持流式对话、多轮会话
yushu_module_mail.sql 邮件系统 企业邮箱配置、邮件模板、发送日志、IMAP收信

ID分配规则

为了避免模块间ID冲突,系统采用分段ID管理:

核心系统

  • 用户ID: 1-99
  • 角色ID: 1-99
  • 部门ID: 100-199
  • 岗位ID: 1-99
  • 菜单ID: 1-2999
    • 一级菜单: 1-10
    • 二级菜单: 100-199
    • 三级菜单: 500-599
    • 按钮权限: 1000-1999
    • 文件管理: 200, 1200-1299
    • 消息中心: 2100-2299
    • 待办事项: 2300-2399
    • 错误日志: 2400-2499

AI扩展模块

  • 菜单ID: 3000-3999
    • 一级菜单: 3000
    • 二级菜单: 3001-3099
    • 按钮权限: 3100-3399
  • AI服务ID: 10001-19999
  • 会话ID: 自动增长(100001起)
  • 消息ID: 自动增长

邮件扩展模块

  • 菜单ID: 4000-4999
    • 一级菜单: 4000
    • 二级菜单: 4001-4099
    • 按钮权限: 4100-4599
  • 邮箱配置ID: 20001-29999
  • 邮件模板ID: 30001-39999
  • 发送日志ID: 自动增长
  • 收件箱ID: 自动增长

快速导入

方式一:命令行导入(推荐)

# 1. 创建数据库
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS yushu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"

# 2. 进入SQL目录
cd yushu-backend/sql

# 3. 导入核心系统(必需)
mysql -u root -p yushu < yushu_core.sql

# 4. 根据需要导入扩展模块
mysql -u root -p yushu < yushu_module_ai.sql
mysql -u root -p yushu < yushu_module_mail.sql

方式二:一键导入所有模块

cd yushu-backend/sql

# Windows
for %f in (yushu_core.sql yushu_module_ai.sql yushu_module_mail.sql) do mysql -u root -p yushu < %f

# Linux/Mac
for file in yushu_core.sql yushu_module_ai.sql yushu_module_mail.sql; do
  echo "正在导入 $file ..."
  mysql -u root -p yushu < $file
done

方式三:使用数据库工具

使用 Navicat、DBeaver、MySQL Workbench 等工具:

  1. 连接到 MySQL 服务器
  2. 创建数据库 yushu(字符集utf8mb4)
  3. 依次执行 SQL 脚本文件

模块依赖关系

yushu_core.sql (核心系统 - 必需)
    |
    +-- 包含:系统核心 + 定时任务 + 文件 + 消息 + 待办 + 错误日志
    |
    v
[扩展模块 - 可选,无依赖关系]
    |
    +-- yushu_module_ai.sql (AI助手)
    +-- yushu_module_mail.sql (邮件系统)

脚本详细说明

1. yushu_core.sql - 核心系统(必需)

包含模块:

系统核心:

  • sys_user - 用户信息表
  • sys_role - 角色信息表
  • sys_menu - 菜单权限表
  • sys_dept - 部门表
  • sys_post - 岗位表
  • sys_dict_type / sys_dict_data - 字典表
  • sys_config - 参数配置表
  • sys_notice - 通知公告表
  • sys_oper_log - 操作日志表
  • sys_logininfor - 登录日志表
  • sys_user_role - 用户角色关联表
  • sys_role_menu - 角色菜单关联表
  • sys_role_dept - 角色部门关联表
  • sys_user_post - 用户岗位关联表

定时任务(Quartz):

  • QRTZ_JOB_DETAILS - 任务详情
  • QRTZ_TRIGGERS - 触发器
  • QRTZ_CRON_TRIGGERS - Cron触发器
  • QRTZ_SIMPLE_TRIGGERS - 简单触发器
  • QRTZ_SIMPROP_TRIGGERS - 属性触发器
  • QRTZ_BLOB_TRIGGERS - Blob触发器
  • QRTZ_CALENDARS - 日历信息
  • QRTZ_PAUSED_TRIGGER_GRPS - 暂停的触发器组
  • QRTZ_FIRED_TRIGGERS - 已触发的触发器
  • QRTZ_SCHEDULER_STATE - 调度器状态
  • QRTZ_LOCKS - 锁信息

文件管理:

  • sys_folder - 文件夹表
  • sys_file - 文件信息表
  • sys_file_share - 文件分享表

消息中心:

  • sys_notification - 系统通知表
  • sys_notification_receiver - 通知接收记录表

待办事项:

  • sys_todo - 待办事项表

错误日志:

  • sys_error_log - 错误日志表

初始数据:

  • 管理员账号:admin / admin123
  • 测试账号:ry / admin123
  • 默认角色:超级管理员、普通角色
  • 系统菜单结构(包含文件、消息、待办、错误日志菜单)
  • 基础部门和岗位数据
  • 字典类型和数据
  • 系统参数配置

2. yushu_module_ai.sql - AI助手模块(可选)

包含表:

  • ai_service - AI服务配置表(厂商、模型、API配置)
  • ai_chat_session - 对话会话表
  • ai_chat_message - 对话消息表

包含菜单:

  • AI管理(一级菜单)
  • 服务管理、对话测试、会话记录(二级菜单)
  • 完整的按钮权限

支持的AI厂商:

  • OpenAI (GPT-4, GPT-3.5-turbo)
  • 智谱AI (GLM-4, GLM-3-turbo)
  • 阿里云 (Qwen-Max, Qwen-Plus)
  • 百度 (ERNIE-Bot-4, ERNIE-Bot-turbo)
  • Moonshot (Kimi)
  • Ollama (本地部署)

功能特性:

  • 多厂商统一接口
  • 流式输出支持
  • 多轮对话上下文管理
  • 模型参数配置
  • 对话历史记录

初始数据:

  • 5个预配置的AI服务(需配置API密钥)

3. yushu_module_mail.sql - 邮件系统模块(可选)

包含表:

  • sys_mail_config - 邮箱配置表
  • sys_mail_template - 邮件模板表
  • sys_mail_log - 邮件发送日志表
  • sys_mail_inbox - 收件箱表

包含菜单:

  • 邮件管理(一级菜单)
  • 邮箱配置、邮件模板、发送邮件、发送日志、收件箱(二级菜单)
  • 完整的按钮权限

支持的邮箱类型:

  • 阿里云企业邮箱(SMTP/API)
  • 腾讯企业邮箱(SMTP/API)
  • 网易企业邮箱(SMTP)
  • 自定义SMTP服务器

功能特性:

  • 多邮箱配置管理
  • 邮件模板管理
  • 变量替换
  • 发送日志记录
  • 支持HTML/纯文本
  • IMAP协议收信
  • 邮件列表管理
  • 附件信息记录
  • 已读/未读状态
  • 星标标记

初始数据:

  • 1个阿里云邮箱配置示例
  • 3个邮件模板(用户注册、密码重置、系统通知)

注意事项

导入顺序

  1. 必须先导入 yushu_core.sql(核心系统)
  2. 扩展模块可以任意顺序导入
  3. 扩展模块之间无依赖关系

字符集要求

  • 数据库字符集:utf8mb4
  • 排序规则:utf8mb4_general_ci
  • 确保支持中文和emoji表情

ID冲突避免

  • 各模块使用独立的ID范围
  • 核心系统使用明确的ID(不使用AUTO_INCREMENT)
  • 扩展模块的主要实体使用明确的ID范围
  • 日志类表使用AUTO_INCREMENT

重复导入

  • 所有脚本包含 DROP TABLE IF EXISTS
  • 可以安全地重复执行
  • 注意:重复导入会清空现有数据

生产环境

  • 导入前务必备份数据库
  • 建议先在测试环境验证
  • 检查MySQL版本兼容性(>= 5.7)

数据库清理

如需重新初始化数据库:

-- 删除数据库
DROP DATABASE IF EXISTS yushu;

-- 重新创建数据库
CREATE DATABASE yushu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 使用数据库
USE yushu;

常见问题

Q: 导入时报字符集错误?

A: 确保数据库使用utf8mb4字符集:

ALTER DATABASE yushu CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Q: 导入时报权限错误?

A: 确保MySQL用户有足够权限:

GRANT ALL PRIVILEGES ON yushu.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;

Q: 如何只导入部分模块?

A: 只导入需要的SQL文件即可,但必须先导入核心脚本(yushu_core.sql)

Q: 如何卸载某个扩展模块?

A: 删除对应的表和菜单:

-- 示例:卸载AI模块
DROP TABLE IF EXISTS ai_service;
DROP TABLE IF EXISTS ai_chat_session;
DROP TABLE IF EXISTS ai_chat_message;
DELETE FROM sys_menu WHERE menu_id >= 3000 AND menu_id < 4000;

Q: 旧版本如何升级到新版本?

A:

  1. 备份现有数据库
  2. 导出重要业务数据
  3. 删除旧数据库
  4. 导入新版本SQL脚本
  5. 恢复业务数据

技术支持

如遇到导入问题,请检查:

  1. MySQL版本是否 >= 5.7
  2. 数据库字符集是否为 utf8mb4
  3. 用户权限是否足够
  4. SQL文件编码是否为 UTF-8
  5. 磁盘空间是否充足