docs: 新增 SaaS 多租户架构与编码约束

This commit is contained in:
zhoulei
2026-08-20 10:41:09 +08:00
parent d8da9c7b1a
commit a4fbb61e12
4 changed files with 142 additions and 2 deletions
+3
View File
@@ -18,6 +18,7 @@
【服务别名】<前端 URL 首段,如 sms>
【数据库】<MySQL / SQL Server,默认 MySQL>
【子系统编码】<public/data/data.js 的 currentSubsystem,默认沿用现有>
【租户上下文】<本系统为多租户 SaaS,默认行级隔离;AI 生成代码须自动带租户过滤,业务参数不传 tenantId>
```
### 2.2 AI 侧(开工前必须明确的默认值)
@@ -30,6 +31,7 @@
| 服务别名 | 沿用 `window.frameBaseConfig.backendServices` 中现有别名;新增服务需用户确认映射 |
| 数据库 | MySQL(建表脚本需与 sqlserver.sql 双份同步) |
| 页面归属 | 菜单结构按界面标题推断一级/二级菜单;无法推断时归入现有最近菜单 |
| 租户隔离 | 默认开启(行级);AI 生成的数据访问自动叠加 `tenant_id` 过滤;不在 URL / 业务参数中传递 tenantId(来自 token,见 `coding-standards.md §9` |
### 2.3 交付说明模板(AI 每次交付代码时附带)
@@ -88,3 +90,4 @@
| 新页面菜单不可见 | 后端菜单数据(`sql/data/`)注册 + dynamicRouter 匹配 url===path |
| 手动拼主键/UUID | 一律 `DaoIdGenerator` |
| 新增 Util/Helper 类 | 遵循 §8.4:可引不可增 |
| 漏写租户过滤 → 跨租户数据泄露 | 数据访问必须带 `tenant_id`JPA @Filter / Repository 基类 / 原生 SQL `?`),缓存 key 加 `tenant:{id}:` 前缀(§9 |