逻辑与物理模型映射
逻辑模型描述实体、关系与业务规则,比如客户与订单是一对多、金额以支付成功为准;物理模型描述落到具体引擎之后的表、字段、分区、类型与索引。两者之间靠字段映射表维护,并且变更要同步更新两侧。映射表是建模评审与审计的证据链:被问到「这个逻辑实体对应哪张表、这个字段精度怎么定的」,答案应该在映射表里,而不是在某个人脑子里。
基本信息
| 逻辑模型 | 实体、关系、业务规则、命名规范 |
|---|---|
| 物理模型 | 表名、字段、类型精度、分区、索引与存储 |
| 桥接物 | 字段映射表 + 评审记录 |
| 变更要求 | 逻辑与物理任一侧改动都要同步更新映射 |
| 典型用途 | 建模评审、影响分析、审计追溯 |
典型使用场景
- 建模评审:评审时对照映射表检查逻辑实体是否都落了物理表
- 需求变更:新字段先落到逻辑模型,再定物理实现与精度
- 影响分析:改一个逻辑实体时查看哪些物理表与下游受影响
- 新人上手:靠映射表快速理解逻辑与物理的对应关系
- 审计追溯:监管问某个指标口径的定义链,映射表给出依据
- 跨引擎迁移:从一套引擎迁移到另一套时,物理差异集中在映射表里体现
映射表示例
映射表示例
逻辑实体 逻辑属性 物理表 物理字段 类型 备注
Customer customer_id dim_customer customer_id varchar(32) 业务主键
Customer 客户名称 dim_customer name varchar(64) trim 后存储
Order 订单金额 fact_order pay_amt decimal(18,2) 支付成功金额
Order 订单号 fact_order order_no varchar(32) 退化维度
OrderItem 商品件数 fact_order_item qty bigint 一订单商品一行映射要记录什么
| 项 | 说明 | 变更风险 |
|---|---|---|
| 逻辑属性到物理字段 | 一对一或一对多的对应关系 | 一对多时需说明拆分规则 |
| 类型与精度 | 逻辑上的金额、日期落到物理的类型 | 精度随意映射会造成金额损失 |
| 分区与索引 | 物理侧的存储决策 | 模型层面需记录,否则迁移时重做 |
| 业务规则落点 | 如一订单一行在哪张表体现 | 规则丢失会导致重复计数 |
| 负责人与时间 | 谁在何时定的这条映射 | 缺失后变更责任无法追溯 |
映射表最容易腐化的方式是「只有创建时填过一次」:之后物理表加列、改类型都不回填,半年后映射表与真实结构完全不符,评审时反而误导人。把映射更新放进变单流程,与建表语句同一次提交,是成本最低的做法。