docs(architecture): 物理数据模型 v0.1,确认 DM1–DM7
- data-model.md:约定、租户隔离落地、按模块的表清单、额度流水语义、 清单项与检查的建模、删除流程、对象存储布局 - schema-draft.sql:40 张表的建表草案(PostgreSQL 16+) - schema-draft-test.sql:租户隔离、额度流水、审计、删除等 16 项行为测试 - 回写架构 §3.2/§3.11/§9/§12、05 §3、FR-M2-05、FR-M3-03 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,23 @@
|
||||
|
||||
---
|
||||
|
||||
## DM1–DM7 · 2026-11-03 · 物理数据模型的取舍:全部按建议
|
||||
|
||||
依据 `docs/architecture/data-model.md` §9;建表脚本草案 `schema-draft.sql` 在 PostgreSQL 16 上跑通了 16 项行为测试。
|
||||
|
||||
| # | 决策 | 理由 |
|
||||
|---|---|---|
|
||||
| DM1 | 文字层和句子放对象存储,**不进数据库**;数据库只存页摘要和出处快照 | 每份文件约 2400 句,一年十亿行级;用到句子的地方都在 worker 里整份读取 |
|
||||
| DM2 | 状态和枚举用 `text` 加 `CHECK`,不用 PostgreSQL 枚举类型 | 改值只改约束;信创数据库兼容性更好 |
|
||||
| DM3 | 业务表之间的外键都带 `tenant_id` | 关掉行级安全策略时仍能防止跨租户引用 |
|
||||
| DM4 | 每个项目一把数据密钥,资质附件用企业级密钥;删除项目时销毁 | 落实 G10「彻底删除」,备份里的数据随之不可读 |
|
||||
| DM5 | 手机号不存明文:查找用 HMAC,发短信用密文,界面显示掩码 | 数据库泄露时拿不到号码 |
|
||||
| DM6 | AI 判断的问题必须挂清单项;规则问题有对应条目时挂,没有时用规则编号 | 大小写金额不一致、出现其他项目名称这类问题,招标文件里没有对应要求 |
|
||||
| DM7 | 清单新增类别「报价」,承载分项限价和单价上限;总价限价放项目字段,包限价放分包 | 三层限价(07 F6)都要有确定的落点 |
|
||||
|
||||
- **另外**:新增 `notification` 模块(站内通知);项目内部的外键一律级联删除,平时清单项只做软删除。
|
||||
- **影响**:架构 §3.2、§3.11、§9、§12;05 §3.2–3.3;FR-M2-05、FR-M3-03;04 指向物理模型。
|
||||
|
||||
## AR11–AR12 · 2026-11-03 · 早期只给多人、多登录方式留结构
|
||||
|
||||
- **原则**:团队版、企业版(多席位、按角色和项目分权限)、飞书 / 企业微信登录、私有化 SSO 都是以后的版本,早期版本不做;但 MVP 的架构和表结构要先考虑到,以后能直接接进来,不用重构。理由:用户要求。
|
||||
|
||||
Reference in New Issue
Block a user