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

120 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 租户表数据库创建说明
## 创建步骤
### 方法1执行独立的 SQL 文件(推荐)
```bash
# 在 MySQL 中执行
mysql -u root -p your_database < server/database/yz_tenants.sql
```
### 方法2手动执行 SQL
```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** - 已通过审核的个人开发者账户
## 验证创建
```sql
-- 查看租户表结构
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;
```
## 如果表已存在
如果想重新创建表(会清空现有数据):
```sql
DROP TABLE IF EXISTS yz_tenants;
```
然后再执行创建脚本。
## 与其他表的关系
租户表是系统中重要的基础表:
- `yz_files` 表中的 `tenant_id` 字段引用租户编码VARCHAR 类型,不是外键)
- 未来可能会在 `yz_users` 表中添加 `tenant_id` 字段来关联租户
## 注意事项
1. **租户编码唯一性**`code` 字段设置了唯一索引,确保每个租户编码都是唯一的
2. **审核流程**:新创建的租户默认 `audit_status``pending`(待审核)
3. **状态管理**:租户可以同时拥有 `status``audit_status` 两个状态字段,分别控制启用状态和审核状态
4. **时间字段**`create_time``update_time` 会自动管理,无需手动设置