yunzer_go/server/database/README_TENANTS.md
2025-10-29 23:07:53 +08:00

3.4 KiB
Raw Blame History

租户表数据库创建说明

创建步骤

方法1执行独立的 SQL 文件(推荐)

# 在 MySQL 中执行
mysql -u root -p your_database < server/database/yz_tenants.sql

方法2手动执行 SQL

-- 1. 进入 MySQL
mysql -u root -p your_database

-- 2. 执行 SQL 脚本
SOURCE server/database/yz_tenants.sql;

方法3在 MySQL 客户端中复制粘贴

直接打开 server/database/yz_tenants.sql 文件,复制所有内容,在 MySQL 客户端中执行。

创建的表

yz_tenants - 租户管理表

表结构说明

基本信息字段

  • id - 租户ID主键自增
  • name - 租户名称(必填)
  • code - 租户编码(必填,唯一)
  • owner - 负责人(必填)
  • phone - 联系电话(可选)
  • email - 邮箱地址(可选)

状态字段

  • status - 状态:enabled(启用)或 disabled(禁用)
  • audit_status - 审核状态:
    • pending - 待审核
    • approved - 已通过
    • rejected - 已拒绝

审核信息字段

  • audit_comment - 审核意见(可选)
  • audit_by - 审核人(可选)
  • audit_time - 审核时间(可选)

其他字段

  • remark - 备注(可选)
  • create_time - 创建时间(自动)
  • update_time - 更新时间(自动)
  • create_by - 创建人(可选)
  • update_by - 更新人(可选)

索引说明

  • uk_code - 租户编码唯一索引
  • idx_name - 租户名称索引
  • idx_owner - 负责人索引
  • idx_status - 状态索引
  • idx_audit_status - 审核状态索引
  • idx_create_time - 创建时间索引

测试数据

SQL 文件中包含 10 条测试数据,涵盖了以下场景:

  1. 默认租户 - 已通过审核的系统默认租户
  2. 示例租户A - 已通过审核的演示租户
  3. 示例租户B - 待审核的租户
  4. 新申请租户C - 待审核的新申请租户
  5. 已拒绝租户D - 被拒绝的租户示例
  6. 企业租户E - 已通过审核的企业级租户
  7. 测试租户F - 已通过审核的测试环境租户
  8. 禁用租户G - 已通过审核但被禁用的租户
  9. 小公司租户H - 待审核的小型公司
  10. 个人开发者I - 已通过审核的个人开发者账户

验证创建

-- 查看租户表结构
DESC yz_tenants;

-- 查看所有租户数据
SELECT * FROM yz_tenants;

-- 查看特定状态的租户
SELECT * FROM yz_tenants WHERE audit_status = 'pending';
SELECT * FROM yz_tenants WHERE status = 'enabled';

-- 查看租户统计
SELECT 
    audit_status,
    COUNT(*) as count
FROM yz_tenants
GROUP BY audit_status;

如果表已存在

如果想重新创建表(会清空现有数据):

DROP TABLE IF EXISTS yz_tenants;

然后再执行创建脚本。

与其他表的关系

租户表是系统中重要的基础表:

  • yz_files 表中的 tenant_id 字段引用租户编码VARCHAR 类型,不是外键)
  • 未来可能会在 yz_users 表中添加 tenant_id 字段来关联租户

注意事项

  1. 租户编码唯一性code 字段设置了唯一索引,确保每个租户编码都是唯一的
  2. 审核流程:新创建的租户默认 audit_statuspending(待审核)
  3. 状态管理:租户可以同时拥有 statusaudit_status 两个状态字段,分别控制启用状态和审核状态
  4. 时间字段create_timeupdate_time 会自动管理,无需手动设置