Files
nexus/Project/fonrey/DATA_MODEL/SCHEMA_CHANGES.md
2026-04-30 18:40:55 +08:00

3.7 KiB
Raw Blame History

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_emailNOT NULL → 可 NULL 2026-04-30

变更详情

#1 — public.tenants 新增 tenant_code

状态:待迁移
提出日期2026-04-30
目标表public.tenantsPublic Schemadjango-tenants 主租户表)

字段定义

tenant_code  CHAR(12) UNIQUE NOT NULL

注释:对外暴露的 12 位纯数字识别码,如 202500010001;用户首次登录客户端时输入;由平台运营在注册租户时生成;创建后不可修改。

推荐加在schema_name 字段之后,name 字段之前。

约束要求

  • CHAR(12):固定 12 位
  • UNIQUE:全局唯一
  • NOT NULL:注册时必填
  • 禁止 UPDATE(应用层 + DB 层双重约束,与 schema_name 同等级别)

建议索引

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

登录查询示例

SELECT schema_name, name
FROM public.tenants
WHERE tenant_code = '202500010001'
  AND status = 'active';

#2 — public.tenants 新增 contact_phone

状态:待迁移
提出日期2026-04-30
目标表public.tenantsPublic Schema

字段定义

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.tenantsPublic Schema

变更 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


后续如有新增字段,按同样格式追加到本文件。