登录模块审核

This commit is contained in:
Shen Wei
2026-04-30 18:40:55 +08:00
parent 4030a91100
commit 57600598ac
34 changed files with 2544 additions and 2431 deletions

View File

@@ -0,0 +1,111 @@
# Schema 变更记录
> **用途**:记录在初始 Model 创建之后新增/修改的字段,供架构师逐一更新 Migration 脚本。
> **格式**:每条变更含目标表、变更类型、字段定义、变更原因、来源 PRD 依据。
> **状态流转**`待迁移` → `已迁移`(架构师完成 migration 后更新状态)
---
## 变更清单
| # | 状态 | 目标表 | 变更类型 | 字段名 | 提出日期 |
|---|------|--------|----------|--------|----------|
| 1 | 待迁移 | `public.tenants` | 新增字段 | `tenant_code` | 2026-04-30 |
| 2 | 待迁移 | `public.tenants` | 新增字段 | `contact_phone` | 2026-04-30 |
| 3 | 待迁移 | `public.tenants` | 字段修改 | `contact_email`NOT NULL → 可 NULL | 2026-04-30 |
---
## 变更详情
### #1 — `public.tenants` 新增 `tenant_code`
**状态**:待迁移
**提出日期**2026-04-30
**目标表**`public.tenants`Public Schemadjango-tenants 主租户表)
**字段定义**
```sql
tenant_code CHAR(12) UNIQUE NOT NULL
```
**注释**:对外暴露的 12 位纯数字识别码,如 `202500010001`;用户首次登录客户端时输入;由平台运营在注册租户时生成;创建后不可修改。
**推荐加在**`schema_name` 字段之后,`name` 字段之前。
**约束要求**
- `CHAR(12)`:固定 12 位
- `UNIQUE`:全局唯一
- `NOT NULL`:注册时必填
- 禁止 `UPDATE`(应用层 + DB 层双重约束,与 `schema_name` 同等级别)
**建议索引**
```sql
CREATE UNIQUE INDEX idx_tenants_tenant_code ON public.tenants(tenant_code);
```
**变更原因**
登录 PRD §5.1.3 明确用户输入 12 位 Tenant Code 完成租户识别,服务端需通过该码查找对应 `schema_name`,原始 `public.tenants` 表中缺少此字段。
**PRD 依据**
`PRD/登录管理/用户登录管理模块PRD.md` §5.1.3 — Tenant Code 格式规范:
> 格式:固定 12 位纯数字,如 `202500010001`
**登录查询示例**
```sql
SELECT schema_name, name
FROM public.tenants
WHERE tenant_code = '202500010001'
AND status = 'active';
```
---
### #2 — `public.tenants` 新增 `contact_phone`
**状态**:待迁移
**提出日期**2026-04-30
**目标表**`public.tenants`Public Schema
**字段定义**
```sql
contact_phone CHAR(11) NOT NULL
```
**注释**联系人手机号11位纯数字系统开通租户时自动以此手机号创建 Tenant Admin 登录账号;必填字段,平台运营在创建租户时录入。
**推荐加在**`contact_name` 字段之后,`contact_email` 字段之前。
**约束要求**
- `CHAR(11)`:固定 11 位手机号
- `NOT NULL`:开通租户时必填
**变更原因**
登录 PRD v1.5 决策Tenant Admin 账号统一以联系人手机号作为用户名,与普通员工账号规则对齐。需在 tenants 表增加手机号字段作为 Tenant Admin 账号创建的数据来源。
**PRD 依据**
`PRD/登录管理/用户登录管理模块PRD.md` §5.3.2 Tenant Admin 账号规格表
---
### #3 — `public.tenants.contact_email` 改为可 NULL
**状态**:待迁移
**提出日期**2026-04-30
**目标表**`public.tenants`Public Schema
**变更 SQL**
```sql
ALTER TABLE public.tenants
ALTER COLUMN contact_email DROP NOT NULL;
```
**变更原因**
`contact_email` 原为 `NOT NULL`。由于 Tenant Admin 账号创建数据来源改为 `contact_phone`(手机号,必填),邮箱降级为选填,仅用于找回密码功能。为空时 Tenant Admin 无法自助找回密码,需联系平台运营处理。
**PRD 依据**
`PRD/登录管理/用户登录管理模块PRD.md` §5.3.2
---
*后续如有新增字段,按同样格式追加到本文件。*