# ODS 清理与文档标注 — 审计记录 > Prompt-ID: P20260214-070000 ## 日期 2026-02-14(Asia/Shanghai) ## 原始原因 用户 Prompt(5 项任务合并执行): 1. table_fee_discount_records — 添加 8 个 tableProfile 展开字段到 .md 文档 2. store_goods_sales_records — 删除 ODS 的 option_name 列 3. store_goods_master — 标记 goodsstockwarninginfo 和 time_slot_sale 为忽略 4. member_stored_value_cards — 删除 ODS 的 able_site_transfer 列 5. group_buy_packages — 标记 tableareanamelist 和 tenanttableareaidlist 为忽略 ## 直接原因 API vs ODS 比对报告(v3-fixed)中发现: - 2 个 ODS 列(option_name、able_site_transfer)在 API JSON 中不存在且全 NULL → 删除 - 4 个 API 独有字段(goodsstockwarninginfo、time_slot_sale、tableareanamelist、tenanttableareaidlist)暂无入 ODS 需求 → 文档标记忽略 - 8 个 tableProfile 展开字段已存在于 ODS 但未在 API 文档中记录 → 补充文档 ## Changed | 文件 | 变更类型 | 说明 | |------|----------|------| | `billiards_ods.store_goods_sales_records` | DB DROP COLUMN | 删除 `option_name` 列 | | `billiards_ods.member_stored_value_cards` | DB DROP COLUMN | 删除 `able_site_transfer` 列 | | `database/migrations/20260214_drop_ods_option_name_able_site_transfer.sql` | 新建 | 迁移脚本 | | `database/schema_ODS_doc.sql` | 修改 | 注释化两列定义 | | `docs/api-reference/table_fee_discount_records.md` | 修改 | 新增 4.7 ODS 展开字段章节 + AI_CHANGELOG | | `docs/api-reference/store_goods_master.md` | 修改 | goodsstockwarninginfo/time_slot_sale 标记"暂不入 ODS" | | `docs/api-reference/group_buy_packages.md` | 修改 | tableareanamelist/tenanttableareaidlist 标记"暂不入 ODS" | | `scripts/run_compare_v3_fixed.py` | 修改 | 移除 option_name/able_site_transfer 的分类条目 | | `scripts/ods_columns.json` | 修改 | 移除两列 | | `docs/reports/api_ods_comparison_v3_fixed.md` | 重新生成 | ODS 独有 12→2,完全对齐 15→18 | | `docs/bd_manual/ODS/20260214_drop_ods_option_name_able_site_transfer.md` | 已创建 | BD Manual 变更记录 | ## Risk / Verify - 风险:ODS 入库 INSERT/UPSERT 语句中若包含 option_name/able_site_transfer 需移除(已确认 DWD 层无映射) - 回归范围:ODS 抓取任务(store_goods_sales_records、member_stored_value_cards) - 验证步骤: 1. `SELECT column_name FROM information_schema.columns WHERE table_schema='billiards_ods' AND table_name='store_goods_sales_records' AND column_name='option_name';` → 0 行 2. `SELECT column_name FROM information_schema.columns WHERE table_schema='billiards_ods' AND table_name='member_stored_value_cards' AND column_name='able_site_transfer';` → 0 行 3. `python scripts/run_compare_v3_fixed.py` → API独有=4, ODS独有=2 ## DB 结构变更回滚 ```sql ALTER TABLE billiards_ods.store_goods_sales_records ADD COLUMN option_name TEXT; ALTER TABLE billiards_ods.member_stored_value_cards ADD COLUMN able_site_transfer INTEGER; ``` 注意:回滚后两列数据均为 NULL(与删除前一致),无数据丢失。 ## 变更影响审查结论 - 判定:本轮为「逻辑改动」(DB schema 变更:删除 2 个 ODS 列) - 评估范围:product.md / tech.md / structure.md / README.md / gui/README.md / docs/README.md / scripts/README.md / tasks/README.md / tests/README.md / database/README.md - 需更新:`database/README.md`(迁移脚本列表新增 `20260214_drop_ods_option_name_able_site_transfer.sql`) - 无需更新:其余 9 个文档(本次变更不影响产品功能、技术栈、项目结构、运行方式) - BD Manual:已在 `docs/bd_manual/ODS/20260214_drop_ods_option_name_able_site_transfer.md` 中同步