Files
Neo-ZQYY/docs/audit/changes/2026-02-13__api-ods-comparison.md

49 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 审计记录API JSON 字段 vs ODS 表列对比
- 日期2026-02-13 (Asia/Shanghai)
- Prompt-IDP20260213-210000
- 原始 Prompt
> 用新梳理的API返回的JSON文档docs\api-reference比对数据库的ODS层是否和Json一致?
> 给我个对比结论文档。将不同的内容通过SQL语句将ODS各表与返回的JSON字段结构对齐。
> 续接不是你需要查询数据库不要依赖DDL
## 直接原因
用户需要验证 ODS 层数据库表结构是否与上游 API 返回的 JSON 字段一致。
方案:编写 Python 脚本查询 `billiards_ods` schema 的 `information_schema.columns`
解析 `docs/api-reference/endpoints/*.md` 中的响应字段表,做 camelCase→snake_case 归一化匹配。
## 修改文件清单
| 文件 | 操作 | 说明 |
|------|------|------|
| `scripts/compare_api_ods.py` | 新建 | 比对脚本(查询 DB + 解析 MD + 归一化匹配) |
| `docs/reports/api_ods_comparison.md` | 新建 | Markdown 对比报告 |
| `docs/reports/api_ods_comparison.json` | 新建 | JSON 格式对比数据 |
| `database/migrations/20260213_align_ods_with_api.sql` | 新建 | 迁移文件(结论:无需变更) |
| `docs/ai_audit/prompt_log.md` | 追加 | Prompt 日志 |
| `docs/ai_audit/changes/2026-02-13__api-ods-comparison.md` | 新建 | 本审计记录 |
## 比对结论
- 22 张 ODS 表全部与 API JSON 字段对齐,无需任何 ALTER 操作
- 大量字段差异为 camelCase vs lowercase 命名风格差异,归一化后全部匹配
- `stock_goods_category_tree` 的 2 个"缺失"为响应包装层字段(`goodsCategoryList`/`total`ODS 已正确展开存储
- 66 个 ODS "多余"列为 ETL 框架自行添加的辅助列(如 `tenant_id``settlelist``real_service_money` 等)
## 风险评估
- 风险等级:低
- 本次无逻辑改动,无数据库结构变更,无 ETL 行为变化
- 新建的比对脚本为只读分析工具,不修改任何数据
- 回归范围:无
- 验证方式:`python scripts/compare_api_ods.py` 重新执行确认输出一致
## 回滚要点
无需回滚(未执行任何数据库变更)。如需清理:
- 删除 `scripts/compare_api_ods.py`
- 删除 `docs/reports/api_ods_comparison.md``.json`
- 删除 `database/migrations/20260213_align_ods_with_api.sql`