Commit Graph

13 Commits

Author SHA1 Message Date
文睿 张
ec0782681b docs: 修正货源改造后的文档,使其与实际 schema 及幂等口径一致
- 数据库表结构与关系说明:materials 删除 supplier_id/manufacturer_id/
  manufacturer_model 三列,新增 material_manufacturers 表,material_suppliers
  改为三元货源口径,补单列外键政策;删除指向不存在的 scripts/upgrades 的升级指引
- 设计文档:§8 第 5 条完整性校验标为货源功能的必做项;修正 init.sql
  「可重复执行」的错误表述(整脚本不可重复执行,仅新增语句各自幂等)
- 实施计划:修正字符集表述(持久表实为 utf8mb4_0900_ai_ci)与「完成后的状态」
  的幂等口径,补入货源功能完成前提
2026-10-15 17:28:03 +08:00
文睿 张
9539b02f1c 同步设计与计划文档到 Task 1 的实现结论
Task 1 实现与评审暴露出文档和计划里的若干错误,据实修正:

- 设计文档 6.2 / 6.4:preferred_row 生成列由 `THEN id` 改为 `THEN 1`。
  原写法既被 MySQL 拒绝(生成列不能引用自增列,ERROR 3109),语义上也
  失效——每行 id 各不相同,唯一键永不冲突,「每物料至多一条首选」形同
  虚设。并补注它与 user_organizations 用 `THEN user_id` 的场合差异:
  那张表没有自增列,用的是业务键。
- 设计文档 6.1 / 6.2、计划 Task 1:两张关系表补
  `FOREIGN KEY(organization_id) REFERENCES organizations(id)`。改造前的
  material_suppliers 旧定义本就有这条单列外键,重写时漏掉了,而项目里
  所有按组织分表的表都有它。
- 计划 Global Constraints:删除「init.sql 必须可重复执行」这一错误约束。
  脚本本就不幂等(普通建表没有 IF NOT EXISTS、schema_migrations 的
  INSERT 也没有幂等,第二次执行在第 8 行即中止),改为只要求新增的分流
  语句自身幂等。
- 计划 Task 1 Step 5:material_manufacturers 建表位置改为
  organization_partners 之后(原位置触发前向外键 ERROR 1824)。
- 计划 Task 1 Step 7:临时表补 DEFAULT CHARSET=utf8mb4(不补会因排序
  规则与持久表不一致报 ERROR 1267)。
- 计划 Task 1 Step 13:改为在 scratch 库重放三条分流语句验证幂等,不再
  要求整脚本重跑。
2026-10-15 16:03:43 +08:00
文睿 张
f18414b3ab 补充实施计划,修正设计文档中与临时表中转不一致的改动清单
- 新增 docs/superpowers/plans/2026-10-15-material-sources-db-migration.md:
  拆成两个任务的实施计划(表结构改造 + 基础货源派生;32 条多供应商
  补入),每个任务自带隔离库验证步骤,各自结束时数据库都自洽可用
- 修正设计文档 7.1:原改动清单按「逐行删值」列出,与 D10 的临时表
  中转方案矛盾。走临时表后 199 行 VALUES 一个字都不用改,改动项由
  12 条收敛为 9 条,并说明这正是选中转而非逐个删值的原因
2026-10-15 15:40:19 +08:00
文睿 张
ba0bde3c33 澄清货源约束作用域,修正回填货源总数为 161 条
- 6.4 要点 1 补充 CHECK 约束的作用域说明,并加四种情形的对照表:
  该约束作用于货源行而非物料,既无供应商也无制造商的物料(70 条老数据)
  因为没有货源行而不受影响,被挡的只是「建了货源行却说不出是谁的货」
- 7.4 标题去掉「(待解决)」,改为「回源后拆分成多行」——这不是设计缺口,
  而是已定方案里的一个执行步骤,并写明拆分到多行的具体做法
- 核准 32 条多供应商物料的供应商家数分布为 {2: 32}(每条恰好 2 家),
  据此把回填货源总数由 129 修正为 161(涉及 3.2、D10、6.2、7.1、7.2、7.4)
2026-10-15 15:18:51 +08:00
文睿 张
1a4bd1d9e8 物料多供应商与多制造商数据库设计文档
确定物料-供应商-制造商三元关系模型,本次只覆盖数据库层:

- D1-D10 决策:三元配对且带采购条件、只存当前价、删除 materials
  的 supplier_id/manufacturer_id/manufacturer_model、拆出
  material_manufacturers、软停用、公司隔离交应用层、status 用
  active/obsolete、删除 uk_organization_partners_org_id、
  init.sql 用临时表中转
- 三张表的字段、唯一键、外键、索引设计,含 NULL 唯一键、
  首选唯一性两个生成列要点
- init.sql 连带改动清单 12 处,以及临时表中转的分流顺序
- 被单值字段截断的 32 条多供应商数据:已查证源库,确认
  伙伴主数据齐备、制造商无同类问题,需回源补齐

前后端改造另行设计。
2026-10-15 14:00:21 +08:00
文睿 张
6ac9f2cb3c 新增伙伴业务分类,优化物料编辑并整理数据库脚本 2026-10-08 11:54:51 +08:00
文睿 张
b1c86593f0 docs: limit first BOM view to one unit 2026-09-23 15:02:15 +08:00
文睿 张
e1401532f1 docs: show BOM history in a dedicated dialog 2026-09-23 13:41:23 +08:00
文睿 张
0336181832 docs: plan BOM usage-position details 2026-09-23 12:05:39 +08:00
文睿 张
6933cd82cc docs: defer automatic BOM position remarks 2026-09-23 12:00:12 +08:00
文睿 张
0c7da9d394 docs: refine BOM version and audit design 2026-09-23 10:31:40 +08:00
文睿 张
b75696f44a docs: add initial BOM management design 2026-09-22 18:25:38 +08:00
文睿 张
31aae223c2 Initial commit 2026-09-15 16:08:18 +08:00