95 lines
4.8 KiB
SQL
95 lines
4.8 KiB
SQL
-- 创建Nacos配置数据库
|
||
CREATE DATABASE IF NOT EXISTS nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
-- 创建ERP业务数据库
|
||
CREATE DATABASE IF NOT EXISTS erp_java CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
||
-- 创建用户表(对应PHP系统的users表)
|
||
USE erp_java;
|
||
|
||
-- 用户表
|
||
CREATE TABLE IF NOT EXISTS users (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
|
||
tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
|
||
username VARCHAR(50) NOT NULL COMMENT '用户名',
|
||
email VARCHAR(100) UNIQUE COMMENT '邮箱',
|
||
phone VARCHAR(20) UNIQUE COMMENT '手机号',
|
||
password_hash VARCHAR(255) NOT NULL COMMENT '密码哈希',
|
||
real_name VARCHAR(50) COMMENT '真实姓名',
|
||
avatar VARCHAR(255) COMMENT '头像URL',
|
||
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
|
||
is_super_admin TINYINT NOT NULL DEFAULT 0 COMMENT '是否超级管理员',
|
||
last_login_at DATETIME COMMENT '最后登录时间',
|
||
last_login_ip VARCHAR(45) COMMENT '最后登录IP',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME COMMENT '删除时间',
|
||
INDEX idx_tenant_id (tenant_id),
|
||
INDEX idx_username (username),
|
||
INDEX idx_email (email),
|
||
INDEX idx_phone (phone)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||
|
||
-- 租户表
|
||
CREATE TABLE IF NOT EXISTS tenants (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '租户ID',
|
||
company_name VARCHAR(200) NOT NULL COMMENT '公司名称',
|
||
contact_name VARCHAR(50) NOT NULL COMMENT '联系人姓名',
|
||
contact_phone VARCHAR(20) NOT NULL COMMENT '联系人电话',
|
||
contact_email VARCHAR(100) NOT NULL COMMENT '联系人邮箱',
|
||
domain VARCHAR(100) UNIQUE COMMENT '租户域名',
|
||
package_id BIGINT COMMENT '套餐ID',
|
||
trial_ends_at DATETIME COMMENT '试用到期时间',
|
||
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0-暂停,1-正常,2-试用',
|
||
max_users INT DEFAULT 10 COMMENT '最大用户数',
|
||
max_orders_per_month INT DEFAULT 1000 COMMENT '每月最大订单数',
|
||
features JSON COMMENT '功能列表',
|
||
settings JSON COMMENT '配置设置',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
INDEX idx_company_name (company_name),
|
||
INDEX idx_domain (domain),
|
||
INDEX idx_status (status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';
|
||
|
||
-- 角色表
|
||
CREATE TABLE IF NOT EXISTS roles (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '角色ID',
|
||
tenant_id BIGINT NOT NULL COMMENT '租户ID',
|
||
name VARCHAR(50) NOT NULL COMMENT '角色名称',
|
||
code VARCHAR(50) NOT NULL COMMENT '角色编码',
|
||
description VARCHAR(255) COMMENT '角色描述',
|
||
is_default TINYINT DEFAULT 0 COMMENT '是否默认角色',
|
||
permissions JSON COMMENT '权限列表',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_tenant_code (tenant_id, code),
|
||
INDEX idx_tenant_id (tenant_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
|
||
|
||
-- 用户角色关联表
|
||
CREATE TABLE IF NOT EXISTS user_roles (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '关联ID',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
UNIQUE KEY uk_user_role (user_id, role_id),
|
||
INDEX idx_user_id (user_id),
|
||
INDEX idx_role_id (role_id),
|
||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表';
|
||
|
||
-- 插入默认数据
|
||
-- 插入超级管理员用户(密码:Admin@123456)
|
||
INSERT IGNORE INTO users (id, username, email, password_hash, real_name, status, is_super_admin) VALUES
|
||
(1, 'admin', 'admin@erp.com', '$2a$10$YourPasswordHashHere', '系统管理员', 1, 1);
|
||
|
||
-- 插入默认租户
|
||
INSERT IGNORE INTO tenants (id, company_name, contact_name, contact_phone, contact_email, status) VALUES
|
||
(1, '演示公司', '演示联系人', '13800138000', 'demo@erp.com', 1);
|
||
|
||
-- 插入默认角色
|
||
INSERT IGNORE INTO roles (id, tenant_id, name, code, description, is_default, permissions) VALUES
|
||
(1, 1, '管理员', 'admin', '系统管理员', 1, '["*"]'),
|
||
(2, 1, '普通用户', 'user', '普通用户', 0, '["order:view", "order:create"]'); |