179 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			8.6 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_tenants (
 | 
						||
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '租户ID',
 | 
						||
    
 | 
						||
    -- 基本信息
 | 
						||
    name VARCHAR(100) NOT NULL COMMENT '租户名称',
 | 
						||
    code VARCHAR(50) NOT NULL COMMENT '租户编码(唯一)',
 | 
						||
    owner VARCHAR(50) NOT NULL COMMENT '负责人',
 | 
						||
    phone VARCHAR(20) DEFAULT NULL COMMENT '联系电话',
 | 
						||
    email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
 | 
						||
    
 | 
						||
    -- 状态信息
 | 
						||
    status VARCHAR(20) DEFAULT 'enabled' COMMENT '状态:enabled-启用,disabled-禁用',
 | 
						||
    audit_status VARCHAR(20) DEFAULT 'pending' COMMENT '审核状态:pending-待审核,approved-已通过,rejected-已拒绝',
 | 
						||
    
 | 
						||
    -- 审核信息
 | 
						||
    audit_comment TEXT DEFAULT NULL COMMENT '审核意见',
 | 
						||
    audit_by VARCHAR(50) DEFAULT NULL COMMENT '审核人',
 | 
						||
    audit_time DATETIME DEFAULT NULL COMMENT '审核时间',
 | 
						||
    
 | 
						||
    -- 其他信息
 | 
						||
    remark TEXT DEFAULT NULL 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_code (code),
 | 
						||
    INDEX idx_name (name),
 | 
						||
    INDEX idx_owner (owner),
 | 
						||
    INDEX idx_status (status),
 | 
						||
    INDEX idx_audit_status (audit_status),
 | 
						||
    INDEX idx_create_time (create_time)
 | 
						||
) 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;
 |