商品分类结构修复
背景
实库将 first_product_groups、second_product_groups 与 third_product_groups 替换为基于 product_groups 的兼容视图,但 products.product_group_id 外键和当前代码仍要求三级分类实体表。现有商品分类新增与迁移无法执行,且完整性检查发现缺少或失效的商品分类。
范围与验收
- [x] 生成可恢复的分类与商品关联备份,并记录写前基线。
- [x] 将三层分类恢复为可写实体表,保留现有分类和商品关联数据。
- [x] 重建
products.product_group_id到三级实体表的外键。 - [x] 新建“云服务器 / 香港 / 香港3区 CN2”,并迁移商品 60,保持隐藏状态。
- [x] 分类完整性检查无阻断错误,管理端分类树和目标商品查询可用。
实施步骤
- 读取实库对象、外键与分类数据,创建时间戳备份。
- 在维护事务中替换兼容视图为三层实体表,并从
product_groups迁移分层数据。 - 重建商品分类外键,修复所有缺失或失效的商品三级归属。
- 创建目标分类,迁移商品 60,并作数据库与接口级验证。
风险与回滚
该变更会替换分类视图、重建外键并更新商品分类归属。任何写前校验、备份或迁移后检查失败时停止,不删除原 product_groups,并使用本次备份恢复视图、外键和商品分类归属。
进度
- [x] 已确认视图、外键和代码期望不一致;两次新增分组尝试均已回滚。
- [x] 已创建并校验数据库内写前备份:43 条旧分类、143 条商品、3 个视图定义及关联约束。
- [x] 已将三个分类视图替换为实体表,保留旧
product_groups作为只读历史来源。 - [x] 已修复 15 个异常商品归属:6 个直挂二级商品与 8 个未分类商品进入隐藏的“历史承接”三级分类;商品 60 迁入目标分类。
- [x] 已重建商品到三级分类外键;完整性命令、分类树及后台商品查询均通过。
决策日志
| 日期 | 决策 | 原因 |
|---|---|---|
| 2026-08-01 | 采用恢复三层实体表的方案 | 当前代码、schema baseline 与商品外键均以三层实体表为真源;仅删除视图无法恢复新增分类能力。 |
| 2026-08-01 | 将异常商品接入隐藏的历史承接分类 | 旧数据仅能证明其直挂二级或未分类,不能据此猜测实际业务区域;历史承接分类保留可追溯性且不改变前台可见商品。 |
| 2026-08-01 | 商品 60 使用后台批量分类服务迁移至三级分类 48 | 目标为“云服务器 / 香港 / 香港3区 CN2”;迁移后 status=0,未自动上架。 |
