原型 · 社区栏目与发帖类目重规划 ⓪ 目录 ① 首页原型 ② 发帖页原型 ③ 旧值映射 ④ 调研报告 说明页 · 不是原型 · 给业务看「旧值怎么落到新类目和 tab」
本次改动说明

旧 10 个子分类 → 新 5 个类目 → 前台 5 个 tab 的对应关系;三层字段(type / category / taskCategory)只有一层收窄;存量走「新增字段 + 双写 + 回填」,分 6 步灰度,前 5 步可回滚。

A

旧值映射表

回填依据 · 一行一旧值,不合并行,方便对账

左列是后台字典里的 10 个 taskCategory 旧值,中列是新类目,右列是它在前台出现在哪里。灰底行 = 只在 ALL 出现、没有自己的 tab。

旧子分类 taskCategory 新类目 落到哪个 tab 备注
Product Reviews → 评测 Reviews Reviews 1:1,改的是显示名
Tutorials → 教程 Tutorials Tutorials 1:1;是否并入官方教程(type=5)待拍板
Creative Rigs → 作品 Works Works 1:1;「Rig」这个词从类目名里退出
Featured Works → 作品 Works Works 取消的是选项,不是内容;历史内容归 Works
Get Help → 求助 Help Help 1:1
Feature Requests → 求助 Help Help 合并;诉求类统一进 Help,不再单开一个类目
Upgrade Rig → 教程 Tutorials Tutorials 玩法差异用标签 / 关联商品表达,不再用类目区分
General → 其他 Other 只进 ALL 兜底值,不做 tab;后台统计其占比
DreamRig → 其他 Other(暂) 只进 ALL 圈子 / 专题建好后二次调整
Rig Studio → 其他 Other(暂) 只进 ALL 同上;内容不消失,只是暂时没有专属 tab
灰底 = 只在 ALL 出现,无专属 tab 10 个旧值 → 5 个新类目 → 4 个 tab + Other(无 tab)
B

三层字段处置

只有「子分类」这一层收窄,其余两层不动

后台一直按 所属栏目 type / 所属主题 category / 子分类 taskCategory 组织内容。本次只动第三层,前两层保持原样,避免牵动品牌帖、任务、官方教程的既有链路。

LAYER 1 · type

所属栏目

不动
1社区帖 2任务 3品牌帖 4品牌官方 5官方教程 6众筹帖

回答「内容从哪来、归哪个后台」,由发帖入口决定。6 个值全部保留,前台不感知。

LAYER 2 · category

所属主题

只修数据,不改结构
1General · 用户帖固定 2Stories 3ShotMate 4/5/6/7品牌官方 8/9Official / Contributors 10/11MyRig / Co-design

用户帖固定 General,由前端固定传值、后台只读;迁移内容的 10/11 改回 General(语义已由新类目表达);品牌与官方的 2/4/5/6/7/8/9 一律保持。

LAYER 3 · taskCategory

子分类

10 → 5
Works Tutorials Reviews Help Other 旧 10 个值 → disabled → 删除

唯一收窄的一层:字典只维护 5 个可选值;旧 10 个值进「历史值」区,+1 迭代 disabled、+2 迭代删除。原值在 task_category 字段留痕,不删不改。

旧子分类(字典)10
Product Reviews Tutorials Creative Rigs Featured Works Get Help Feature Requests Upgrade Rig General DreamRig Rig Studio
映射 + 回填 只读旧值
新类目 normalized_category5
作品 Works 教程 Tutorials 评测 Reviews 求助 Help 其他 Other 用户帖 category 固定 General
同词直出 不做二次映射
前台 tab5
ALL· 全部公开内容 Works Tutorials Reviews Help Other 不出现 tab,只在 ALL

为什么不是 10 → 5 一对一直落 tab:要么把 Other 也做成 tab(兜底类目被放大),要么让 DreamRig / Rig Studio 无家可归。现在的做法是「内容不丢(进 ALL)+ 结构不膨胀(不做 tab)+ 后续由圈子/专题接走」。

C

迁移时间线

每步标注能否回滚、回滚怎么做

存量内容不迁移物理数据,只补一个新字段。前 5 步都留了回退口,只有第 6 步(删旧字典值)不可回滚,所以它放在最后、且隔两个迭代。

STEP 1

双写上线

加字段 normalized_category,新帖同时写 task_category 与 normalized_category。

可回滚

回滚:关闭双写,新字段留着不用

STEP 2

存量回填

按 type=1 分批跑映射(每批带日志),DreamRig / Rig Studio 先归 Other。

可回滚

回滚:按批次清空新字段重跑

STEP 3

对账

每个新 tab 条数 = 映射后旧值条数之和;再抽 20 条人工核对。

可回滚

回滚:不切换,继续读旧字段

STEP 4

前台切读新字段

tab、后台筛选、统计全部改读 normalized_category,先灰度。

可回滚

回滚:开关切回旧字段

STEP 5 · +1 迭代

旧值 disabled

后台字典禁用 10 个旧值,前台不再下发;历史区仍可见。

可回滚

回滚:恢复 enabled

STEP 6 · +2 迭代

旧值删除

从字典与前端常量中物理删除,task_category 原值仅留痕。

不可回滚

依赖删除前的字典快照与备份

进入下一步的前提:Step 2 回填条数 = 存量社区帖数;Step 3 两套读数差异 = 0;Step 4 灰度期间前台无异常投诉。任一不满足就停在本步回滚,不往前推。

口径来源:《方案-首页Tab与发帖类目(建议稿)》第 3 节;字段与现状结构来自《smallrig.md》。本页只做关系说明,不含视觉设计。