# Dataflow 报告 vs Field Review 字段新增方案对比

> 生成时间：2026-02-20
> 对比文件：
> - **DF**（自动扫描）：`dataflow_2026-02-20_005219.md`
> - **FR**（人工审查）：`field_review_for_user.md`

---

## 一、完全一致的表

以下 6 张表，两份报告在字段新增方案上结论完全相同：

| 表名 | 未映射数 | FR 方案 | 一致性 |
|------|---------|---------|--------|
| `assistant_accounts_master` | 4 | A 类：system_role_id, job_num, cx_unit_price, pd_unit_price → dim_assistant_ex | ✅ 完全一致 |
| `member_balance_changes` | 1 | A 类：relate_id → dwd_member_balance_change_ex | ✅ 完全一致 |
| `site_tables_master` | 14 | A 类：14 个字段 → dim_table_ex | ✅ 完全一致 |
| `goods_stock_summary` | 14 | C 类：新建 dwd_goods_stock_summary，全部 14 列映射 | ✅ 完全一致 |
| `goods_stock_movements` | 19 | C 类：新建 dwd_goods_stock_movement，全部 19 列映射 | ✅ 完全一致 |
| `settlement_ticket_details` | 38 | C 类：新建 dwd_settlement_ticket + _ex，~38 列映射 | ✅ 完全一致 |

---

## 二、有差异的表（逐表分析）

### 2.1 assistant_service_records

| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `operator_id` | ⚠️ 无 DWD 目标 | ✅ 待新增 → dwd_assistant_service_log_ex | 一致 |
| `operator_name` | ⚠️ 无 DWD 目标 | ✅ 待新增 → dwd_assistant_service_log_ex | 一致 |
| `siteprofile` | ⚠️ 无 DWD 目标 | （未提及） | DF 多报：jsonb 嵌套字段，不适合直接映射 DWD 列，FR 正确忽略 |
| `site_assistant_id` | ⚠️ 无 DWD 目标 | ⏭️ 跳过：已通过 FACT_MAPPINGS 间接映射（ODS order_assistant_id → DWD site_assistant_id） | DF 多报：自动扫描无法识别间接映射 |

**结论**：实质一致。DF 多出的 2 个标记（siteprofile、site_assistant_id）均为合理的"不需处理"项。

---

### 2.2 assistant_cancellation_records

| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `assistanton` | ⚠️ 无 DWD 目标 | ✅ 待新增 → assistant_no_int（dwd_assistant_trash_event_ex） | 一致 |
| `siteprofile` | ⚠️ 无 DWD 目标 | （未提及） | DF 多报：jsonb 嵌套字段，FR 正确忽略 |

**结论**：实质一致。差异仅为 siteprofile 的合理忽略。

---

### 2.3 recharge_settlements

| 字段对（ODS → DWD） | DF 标记 | FR 标记 | 差异说明 |
|---------------------|--------|--------|---------|
| `plcouponsaleamount` → `pl_coupon_sale_amount` | ODS 侧 ⚠️ 无 DWD 目标 + DWD 侧 ⚠️ 无 ODS 源 | ✅ B 类：DWD 列已存在，仅补 FACT_MAPPINGS | 诊断视角不同 |
| `mervousalesamount` → `mervou_sales_amount` | 同上 | ✅ B 类：同上 | 同上 |
| `electricitymoney` → `electricity_money` | 同上 | ✅ B 类：同上 | 同上 |
| `realelectricitymoney` → `real_electricity_money` | 同上 | ✅ B 类：同上 | 同上 |
| `electricityadjustmoney` → `electricity_adjust_money` | 同上 | ✅ B 类：同上 | 同上 |

**结论**：实质一致。DF 因 FACT_MAPPINGS 缺失，在 ODS 侧和 DWD 侧各报了一次"未映射"（共 10 个标记）。FR 更精准地识别出 DWD 列已存在，只需补映射配置（B 类操作）。

---

### 2.4 store_goods_master

| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `batch_stock_quantity` | ⚠️ 无 DWD 目标 | ✅ 待新增 → dim_store_goods_ex | 一致 |
| `provisional_total_cost` | ⚠️ 无 DWD 目标 | ⏭️ 跳过：DWD 列名已被占用（映射自 ODS total_purchase_cost） | FR 识别出列名冲突，有意跳过 |
| `time_slot_sale`（API 层） | ⚠️ API→ODS 未映射 | ⏭️ 跳过：ODS 列不存在，需确认 API 是否返回 | 两者都发现，FR 标记为待确认 |

**结论**：batch_stock_quantity 一致。provisional_total_cost 的差异是 FR 有意为之（列名冲突待后续处理）。

---

### 2.5 store_goods_sales_records

| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `discount_price` | ⚠️ 无 DWD 目标 | ⏭️ 跳过：DWD discount_price 列名已被占用（映射自 ODS discount_money）。如需可后续新增 unit_discount_price | FR 识别出列名冲突并给出后续方案 |

**结论**：一致。FR 提供了更具体的处理建议。

---

### 2.6 tenant_goods_master

| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `commoditycode` | ⚠️ 无 DWD 目标 | ⏭️ 跳过：冗余字段，DWD 已有 commodity_code + commodity_code_list 覆盖该语义 | FR 判断为冗余，合理跳过 |

**结论**：一致。FR 的跳过决策合理。

---

## 三、DF 扫描范围更广但 FR 未涉及的表

DF 覆盖全部 23 张 ODS 表，以下 11 张表 FR 未涉及（因为不涉及字段新增）：

| 表名 | DF 发现的 ODS→DWD 未映射 | 说明 |
|------|------------------------|------|
| `settlement_records` | 0 | 无差异 |
| `table_fee_transactions` | 1（siteprofile） | jsonb 嵌套，无需处理 |
| `payment_transactions` | 1（siteprofile） | 同上 |
| `refund_transactions` | 1（siteprofile） | 同上 |
| `platform_coupon_redemption_records` | 1（siteprofile） | 同上 |
| `member_profiles` | 0 | 无差异 |
| `member_stored_value_cards` | 0 | 无差异 |
| `group_buy_packages` | 0 | 无差异（API 层有 2 个数组字段未映射） |
| `group_buy_redemption_records` | 0 | 无差异 |
| `stock_goods_category_tree` | 1（categoryboxes） | 特殊字段，无需处理 |
| `table_fee_discount_records` | 2（siteprofile, tableprofile） | jsonb 嵌套，无需处理 |

---

## 四、总结对比

| 维度 | DF（自动扫描） | FR（人工审查） |
|------|--------------|--------------|
| 覆盖范围 | 23 张 ODS 表全量扫描 | 12 张有差异的表 |
| 待新增字段汇总 | 未给出（只标记差异） | 31 个待新增 + 6 个跳过 |
| 操作分类 | 无 | A 类（新增列+映射）/ B 类（仅补映射）/ C 类（新建表） |
| 诊断精度 | 机械对比，无法识别间接映射、jsonb 嵌套、列名冲突 | 逐字段人工决策，识别所有特殊情况 |
| 独有发现 | siteprofile 系列标记、time_slot_sale（API→ODS） | 列名冲突处理建议、目标表指定、冗余字段判断 |

### 核心结论

两份报告在实质性字段新增方案上**完全一致**。DF 多出的标记在 FR 中都有对应的"跳过"或"已处理"说明：

- `siteprofile`（多张表）→ jsonb 嵌套字段，不适合直接映射
- `site_assistant_id` → 已通过 FACT_MAPPINGS 间接映射
- `provisional_total_cost` → DWD 列名冲突，待后续处理
- `commoditycode` → 冗余字段，已有等价覆盖
- `discount_price` → DWD 列名冲突，待后续处理

DF 的价值：全量自动化扫描，确保无遗漏，适合作为 FR 的前置输入。
FR 的价值：提供可执行的分类方案和特殊情况处理策略，是最终实施依据。
