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;
 |