首页/数据/数仓建模速查/逻辑模型与物理模型映射
建模基础69 条

逻辑模型与物理模型映射

逻辑模型描述实体关系与业务规则,物理模型描述表、分区、类型与索引;两者用字段映射表维护,变更同步更新。

数仓建模速查数据更新于 2026-10-13

逻辑与物理模型映射

逻辑模型描述实体、关系与业务规则,比如客户与订单是一对多、金额以支付成功为准;物理模型描述落到具体引擎之后的表、字段、分区、类型与索引。两者之间靠字段映射表维护,并且变更要同步更新两侧。映射表是建模评审与审计的证据链:被问到「这个逻辑实体对应哪张表、这个字段精度怎么定的」,答案应该在映射表里,而不是在某个人脑子里。

基本信息

逻辑模型实体、关系、业务规则、命名规范
物理模型表名、字段、类型精度、分区、索引与存储
桥接物字段映射表 + 评审记录
变更要求逻辑与物理任一侧改动都要同步更新映射
典型用途建模评审、影响分析、审计追溯

典型使用场景

  • 建模评审:评审时对照映射表检查逻辑实体是否都落了物理表
  • 需求变更:新字段先落到逻辑模型,再定物理实现与精度
  • 影响分析:改一个逻辑实体时查看哪些物理表与下游受影响
  • 新人上手:靠映射表快速理解逻辑与物理的对应关系
  • 审计追溯:监管问某个指标口径的定义链,映射表给出依据
  • 跨引擎迁移:从一套引擎迁移到另一套时,物理差异集中在映射表里体现

映射表示例

映射表示例
逻辑实体        逻辑属性        物理表             物理字段      类型          备注
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        一订单商品一行

映射要记录什么

项说明变更风险
逻辑属性到物理字段一对一或一对多的对应关系一对多时需说明拆分规则
类型与精度逻辑上的金额、日期落到物理的类型精度随意映射会造成金额损失
分区与索引物理侧的存储决策模型层面需记录,否则迁移时重做
业务规则落点如一订单一行在哪张表体现规则丢失会导致重复计数
负责人与时间谁在何时定的这条映射缺失后变更责任无法追溯
映射表最容易腐化的方式是「只有创建时填过一次」:之后物理表加列、改类型都不回填,半年后映射表与真实结构完全不符,评审时反而误导人。把映射更新放进变单流程,与建表语句同一次提交,是成本最低的做法。

易错点

  • 逻辑模型画完即弃:物理实现无人对照,设计意图与落地结果脱节
  • 类型精度随意映射:金额逻辑上是高精度 decimal,物理落成 float 或小精度造成损失
  • 映射表不随变更更新:半年后与真实结构不符,评审时提供错误信息
  • 一对多映射未说明拆分规则:下游按一对一理解,join 后行数放大
  • 业务规则不落在映射表:如一订单一行这类关键约定只存在于口头,换人即丢失

数据来源与参考

  • 数据建模工程实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌