141 lines
7.0 KiB
SQL
141 lines
7.0 KiB
SQL
-- 只创建缺失的表,不重复创建已存在的表
|
||
-- 适用于部分表已存在的情况
|
||
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
-- 检查并创建用户表(如果不存在)
|
||
CREATE TABLE IF NOT EXISTS 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='用户表';
|
||
|
||
-- 检查并创建菜单表(如果不存在)
|
||
CREATE TABLE IF NOT EXISTS 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表示顶级菜单',
|
||
level TINYINT DEFAULT 1 COMMENT '菜单层级:1-一级菜单,2-二级菜单,3-三级菜单',
|
||
full_path VARCHAR(500) DEFAULT NULL COMMENT '完整路径(包含所有父级路径)',
|
||
is_leaf TINYINT DEFAULT 0 COMMENT '是否叶子节点:0-非叶子节点,1-叶子节点',
|
||
has_children TINYINT DEFAULT 0 COMMENT '是否有子菜单:0-无子菜单,1-有子菜单',
|
||
children_count INT DEFAULT 0 COMMENT '子菜单数量',
|
||
icon VARCHAR(100) DEFAULT NULL COMMENT '菜单图标',
|
||
order_num 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_level (level),
|
||
INDEX idx_status (status),
|
||
INDEX idx_order (order_num),
|
||
INDEX idx_menu_type (menu_type),
|
||
INDEX idx_full_path (full_path(255))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表(增强版)';
|
||
|
||
-- 检查并创建程序分类表(如果不存在)
|
||
CREATE TABLE IF NOT EXISTS 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 IF NOT EXISTS 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='程序信息表';
|
||
|
||
-- 检查并创建文件表(如果不存在)
|
||
CREATE TABLE IF NOT EXISTS 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='文件表';
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|
||
|
||
-- 完成创建
|
||
SELECT 'Missing tables created successfully!' as message;
|