289 lines
14 KiB
SQL
289 lines
14 KiB
SQL
-- 云泽系统数据库初始化脚本
|
||
-- 创建时间: 2024
|
||
-- 描述: 包含所有系统表的创建和初始化数据
|
||
|
||
-- 设置字符集
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
-- =============================================
|
||
-- 1. 用户相关表
|
||
-- =============================================
|
||
|
||
-- 创建用户表
|
||
CREATE TABLE yz_users (
|
||
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
|
||
username VARCHAR(50) NOT NULL COMMENT '用户名',
|
||
password VARCHAR(255) NOT NULL COMMENT '加密后的密码',
|
||
salt VARCHAR(100) NOT NULL COMMENT '密码盐值',
|
||
email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
|
||
avatar VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
|
||
nickname VARCHAR(50) DEFAULT NULL COMMENT '昵称',
|
||
role VARCHAR(20) DEFAULT 'user' COMMENT '用户角色:admin-管理员,user-普通用户',
|
||
status TINYINT DEFAULT 1 COMMENT '用户状态:0-禁用,1-启用',
|
||
last_login_time DATETIME DEFAULT NULL COMMENT '最后登录时间',
|
||
last_login_ip VARCHAR(45) DEFAULT NULL COMMENT '最后登录IP',
|
||
login_count INT DEFAULT 0 COMMENT '登录次数',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
|
||
update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
|
||
|
||
-- 索引
|
||
UNIQUE KEY uk_username (username),
|
||
INDEX idx_email (email),
|
||
INDEX idx_role (role),
|
||
INDEX idx_status (status),
|
||
INDEX idx_create_time (create_time)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||
|
||
-- =============================================
|
||
-- 2. 菜单相关表
|
||
-- =============================================
|
||
|
||
-- 创建菜单表(增强版,包含完整父子级别参数)
|
||
CREATE TABLE yz_menus (
|
||
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '菜单ID',
|
||
name VARCHAR(100) NOT NULL COMMENT '菜单名称',
|
||
path VARCHAR(255) NOT NULL COMMENT '菜单路径',
|
||
parent_id INT DEFAULT 0 COMMENT '父菜单ID,0表示顶级菜单',
|
||
icon VARCHAR(100) DEFAULT NULL COMMENT '菜单图标',
|
||
`order` INT DEFAULT 0 COMMENT '排序序号',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
|
||
component_path VARCHAR(500) DEFAULT NULL COMMENT '组件路径',
|
||
is_external TINYINT DEFAULT 0 COMMENT '是否外部链接:0-内部路由,1-外部链接',
|
||
external_url VARCHAR(1000) DEFAULT NULL COMMENT '外部链接地址',
|
||
menu_type TINYINT DEFAULT 1 COMMENT '菜单类型:1-普通菜单,2-分组菜单,3-按钮菜单',
|
||
permission VARCHAR(200) DEFAULT NULL COMMENT '权限标识',
|
||
description VARCHAR(500) DEFAULT NULL COMMENT '菜单描述',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
create_by VARCHAR(100) DEFAULT NULL COMMENT '创建人',
|
||
update_by VARCHAR(100) DEFAULT NULL COMMENT '更新人',
|
||
|
||
-- 索引
|
||
INDEX idx_parent_id (parent_id),
|
||
INDEX idx_status (`status`),
|
||
INDEX idx_order (`order`),
|
||
INDEX idx_menu_type (menu_type)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表(增强版)';
|
||
|
||
-- =============================================
|
||
-- 3. 程序管理相关表
|
||
-- =============================================
|
||
|
||
-- 创建程序分类表
|
||
CREATE TABLE yz_program_category (
|
||
category_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
|
||
category_name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
category_desc VARCHAR(500) DEFAULT NULL COMMENT '分类描述',
|
||
parent_id INT DEFAULT 0 COMMENT '父分类ID,0表示顶级分类',
|
||
sort_order INT DEFAULT 0 COMMENT '排序序号,用于展示顺序',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
||
-- 索引
|
||
INDEX idx_parent_id (parent_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='程序分类表';
|
||
|
||
-- 创建程序信息表
|
||
CREATE TABLE yz_program_info (
|
||
program_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '程序ID',
|
||
category_id INT NOT NULL COMMENT '所属分类ID',
|
||
program_name VARCHAR(200) NOT NULL COMMENT '程序名称',
|
||
program_desc TEXT COMMENT '程序描述',
|
||
jump_url VARCHAR(1000) NOT NULL COMMENT '跳转地址',
|
||
icon_url VARCHAR(1000) DEFAULT NULL COMMENT '程序图标地址',
|
||
version VARCHAR(50) DEFAULT NULL COMMENT '程序版本',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
|
||
sort_order INT DEFAULT 0 COMMENT '排序序号,用于展示顺序',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
|
||
-- 索引
|
||
INDEX idx_category_id (category_id),
|
||
INDEX idx_status (status),
|
||
CONSTRAINT yz_fk_program_category FOREIGN KEY (category_id) REFERENCES yz_program_category (category_id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='程序信息表';
|
||
|
||
-- =============================================
|
||
-- 4. 文件管理相关表
|
||
-- =============================================
|
||
|
||
-- 创建文件表
|
||
CREATE TABLE yz_files (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '文件ID',
|
||
tenant_id VARCHAR(64) NOT NULL COMMENT '租户ID',
|
||
user_id INT NOT NULL DEFAULT 0 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) COMMENT '文件访问URL',
|
||
file_size BIGINT NOT NULL DEFAULT 0 COMMENT '文件大小(字节)',
|
||
file_type VARCHAR(50) NOT NULL COMMENT '文件类型',
|
||
file_ext VARCHAR(20) NOT NULL COMMENT '文件扩展名',
|
||
|
||
-- 分类信息
|
||
category VARCHAR(100) NOT NULL COMMENT '文件分类',
|
||
sub_category VARCHAR(100) COMMENT '子分类',
|
||
|
||
-- 状态信息
|
||
status TINYINT DEFAULT 1 COMMENT '状态(1:正常, 0:删除)',
|
||
is_public TINYINT DEFAULT 0 COMMENT '是否公开(1:是, 0:否)',
|
||
|
||
-- 上传信息
|
||
upload_by VARCHAR(100) NOT NULL COMMENT '上传人',
|
||
upload_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
|
||
|
||
-- 索引
|
||
INDEX idx_tenant (tenant_id),
|
||
INDEX idx_user (user_id),
|
||
INDEX idx_category (category),
|
||
INDEX idx_upload_time (upload_time),
|
||
INDEX idx_status (status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表';
|
||
|
||
-- =============================================
|
||
-- 5. 插入初始数据
|
||
-- =============================================
|
||
|
||
-- 插入默认管理员用户
|
||
-- 注意:实际使用时需要生成真实的加密密码和盐值
|
||
INSERT INTO yz_users (username, password, salt, email, nickname, role, status, create_by) VALUES
|
||
('admin', 'encrypted_password_here', 'salt_here', 'admin@yunzer.com', '超级管理员', 'admin', 1, 'system'),
|
||
('test', 'encrypted_password_here', 'salt_here', 'test@yunzer.com', '测试用户', 'user', 1, 'system');
|
||
|
||
-- 插入默认菜单数据
|
||
INSERT INTO yz_menus (name, path, parent_id, icon, `order`, status, component_path, menu_type, description) VALUES
|
||
('仪表盘', '/dashboard', 0, 'fa-solid fa-gauge', 1, 1, '@/views/dashboard/index.vue', 1, '系统仪表盘,展示关键指标'),
|
||
('系统管理', '/system', 0, 'fa-solid fa-screwdriver-wrench', 4, 1, null, 2, '系统管理功能模块'),
|
||
('系统设置', '/settings', 0, 'fa-solid fa-gear', 99, 1, '@/views/settings/index.vue', 1, '系统参数设置'),
|
||
('应用管理', '/apps', 0, 'fa-solid fa-gear', 4, 1, null, 2, '应用管理功能模块'),
|
||
('文件管理', '/system/files', 2, 'fa-solid fa-folder', 3, 1, '@/views/system/files/index.vue', 1, '文件管理系统'),
|
||
('租户管理', '/system/tenant', 2, 'fas fa-user-friends', 2, 1, '@/views/system/tenant/index.vue', 1, '租户管理'),
|
||
('用户管理', '/system/users', 2, 'fa-solid fa-user', 1, 1, '@/views/system/users/index.vue', 1, '用户信息管理'),
|
||
('角色管理', '/system/roles', 2, 'fa-solid fa-user-tag', 2, 1, '@/views/system/roles/index.vue', 1, '角色权限管理'),
|
||
('权限管理', '/system/permissions', 2, 'fa-solid fa-key', 2, 1, '@/views/system/permissions/index.vue', 1, '权限管理'),
|
||
('菜单管理', '/system/menus', 2, 'fa-solid fa-bars-progress', 2, 1, '@/views/system/menus/manager.vue', 1, '菜单权限管理'),
|
||
('程序管理', '/system/programs', 2, 'fa-solid fa-grip', 3, 1, '@/views/system/programs/index.vue', 1, '程序功能管理'),
|
||
('知识库', '/apps/knowledge', 4, 'fa-solid fa-book', 1, 1, '@/views/apps/knowledge/index.vue', 1, '知识库管理'),
|
||
('编辑', '/apps/knowledge/edit', 11, '', 1, 1, '@/views/apps/knowledge/components/edit.vue', 1, '知识库编辑'),
|
||
('详情', '/apps/knowledge/detail', 11, '', 1, 1, '@/views/apps/knowledge/components/detail.vue', 1, '知识库详情');
|
||
|
||
-- =============================================
|
||
-- 4. 知识库相关表
|
||
-- =============================================
|
||
|
||
-- 创建知识库分类表
|
||
CREATE TABLE IF NOT EXISTS yz_knowledge_category (
|
||
category_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '分类ID',
|
||
category_name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
category_desc VARCHAR(500) DEFAULT NULL COMMENT '分类描述',
|
||
parent_id INT DEFAULT 0 COMMENT '父分类ID,0表示顶级分类',
|
||
sort_order INT DEFAULT 0 COMMENT '排序序号',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_parent_id (parent_id),
|
||
INDEX idx_sort_order (sort_order)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库分类表';
|
||
|
||
-- 创建知识库标签表
|
||
CREATE TABLE IF NOT EXISTS yz_knowledge_tags (
|
||
tag_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '标签ID',
|
||
tag_name VARCHAR(50) NOT NULL COMMENT '标签名称',
|
||
tag_color VARCHAR(20) DEFAULT NULL COMMENT '标签颜色',
|
||
usage_count INT DEFAULT 0 COMMENT '使用次数',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_tag_name (tag_name),
|
||
INDEX idx_usage_count (usage_count)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库标签表';
|
||
|
||
-- 创建知识库内容表
|
||
CREATE TABLE IF NOT EXISTS yz_knowledge (
|
||
knowledge_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '知识ID',
|
||
title VARCHAR(200) NOT NULL COMMENT '标题',
|
||
category_id INT DEFAULT NULL COMMENT '分类ID',
|
||
tags TEXT COMMENT '标签JSON数组,存储标签名称',
|
||
author VARCHAR(50) NOT NULL COMMENT '作者',
|
||
content LONGTEXT COMMENT '正文内容(富文本)',
|
||
summary VARCHAR(500) DEFAULT NULL COMMENT '摘要',
|
||
cover_url VARCHAR(500) DEFAULT NULL COMMENT '封面图片URL',
|
||
status TINYINT DEFAULT 0 COMMENT '状态:0-草稿,1-已发布,2-已归档',
|
||
view_count INT DEFAULT 0 COMMENT '查看次数',
|
||
like_count INT DEFAULT 0 COMMENT '点赞数',
|
||
is_recommend TINYINT DEFAULT 0 COMMENT '是否推荐:0-否,1-是',
|
||
is_top TINYINT DEFAULT 0 COMMENT '是否置顶:0-否,1-是',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
|
||
update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
|
||
INDEX idx_category_id (category_id),
|
||
INDEX idx_author (author),
|
||
INDEX idx_title (title),
|
||
INDEX idx_status (status),
|
||
INDEX idx_create_time (create_time),
|
||
INDEX idx_view_count (view_count),
|
||
INDEX idx_is_recommend (is_recommend),
|
||
INDEX idx_is_top (is_top)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库内容表';
|
||
|
||
-- 创建知识库收藏表
|
||
CREATE TABLE IF NOT EXISTS yz_knowledge_favorites (
|
||
favorite_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '收藏ID',
|
||
knowledge_id INT NOT NULL COMMENT '知识ID',
|
||
user_id INT NOT NULL COMMENT '用户ID',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
UNIQUE KEY uk_knowledge_user (knowledge_id, user_id),
|
||
INDEX idx_user_id (user_id),
|
||
CONSTRAINT yz_fk_fav_knowledge FOREIGN KEY (knowledge_id) REFERENCES yz_knowledge (knowledge_id) ON DELETE CASCADE,
|
||
CONSTRAINT yz_fk_fav_user FOREIGN KEY (user_id) REFERENCES yz_users (id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库收藏表';
|
||
|
||
-- 插入默认知识库分类
|
||
INSERT INTO yz_knowledge_category (category_name, category_desc, parent_id, sort_order) VALUES
|
||
('技术文档', '技术相关的文档资料', 0, 1),
|
||
('产品手册', '产品使用手册和说明', 0, 2),
|
||
('用户指南', '用户操作指南和教程', 0, 3),
|
||
('常见问题', '常见问题解答', 0, 4),
|
||
('API文档', 'API接口文档', 0, 5),
|
||
('Vue', 'Vue框架相关', 1, 101),
|
||
('React', 'React框架相关', 1, 102),
|
||
('Go', 'Go语言相关', 1, 103);
|
||
|
||
-- 插入默认知识库标签
|
||
INSERT INTO yz_knowledge_tags (tag_name, tag_color, usage_count) VALUES
|
||
('Vue', '#4CAF50', 0),
|
||
('React', '#42A5F5', 0),
|
||
('TypeScript', '#3178C6', 0),
|
||
('Element Plus', '#409EFF', 0),
|
||
('Vue Router', '#4FC08D', 0),
|
||
('Pinia', '#FFD54F', 0),
|
||
('Go', '#00ADD8', 0),
|
||
('Python', '#3776AB', 0);
|
||
|
||
-- 插入默认程序分类
|
||
INSERT INTO yz_program_category (category_name, category_desc, parent_id, sort_order) VALUES
|
||
('办公软件', '办公相关程序', 0, 1),
|
||
('开发工具', '开发相关工具', 0, 2),
|
||
('系统工具', '系统管理工具', 0, 3);
|
||
|
||
-- 插入默认程序信息
|
||
INSERT INTO yz_program_info (category_id, program_name, program_desc, jump_url, icon_url, version, status, sort_order) VALUES
|
||
(1, '文档编辑器', '在线文档编辑工具', '/editor', '/icons/editor.png', '1.0.0', 1, 1),
|
||
(2, '代码编辑器', '在线代码编辑工具', '/code', '/icons/code.png', '1.0.0', 1, 1),
|
||
(3, '系统监控', '系统状态监控工具', '/monitor', '/icons/monitor.png', '1.0.0', 1, 1);
|
||
|
||
-- 恢复外键检查
|
||
SET FOREIGN_KEY_CHECKS = 1;
|
||
|
||
-- 完成初始化
|
||
SELECT 'Database initialization completed successfully!' as message;
|
||
|
||
|
||
|
||
|
||
|