首页/数据/数仓建模速查/维度表命名与字段规范
建模基础69 条

维度表命名与字段规范

维度表以 dim_ 前缀 + 主题命名(dim_user),主键 *_sk,业务键 *_id,描述字段用业务术语;规范统一后跨表自解释。

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

维度表命名与字段规范

维度表以 dim_ 前缀加主体名称命名,如 dim_user、dim_shop,主体名用单数业务概念。主键字段统一用 xxx_sk 后缀,业务键用 xxx_id,描述字段用业务术语而不是缩写,时间字段声明起止与加载时间。规范统一之后,跨表取数不必先查文档:看到 _sk 就知道是代理键,看到 _id 就知道是源系统编码。存量表与规范的差异要登记在豁免清单里,而不是让规范形同虚设。

基本信息

表名dim_<主体>,如 dim_user、dim_shop
主键xxx_sk 代理键;业务键 xxx_id
描述字段业务术语全称,避免无语义缩写
时间字段start_dt / end_dt / etl_time 成对声明
豁免管理存量差异登记清单并逐步收敛

典型使用场景

  • 新建维表:按规范命名后使用者无需查文档即可判断字段含义
  • 跨表排查:统一后缀让血缘与字段扫描可脚本化执行
  • 老表治理:存量表按规范逐步改名,例外登记在豁免清单
  • 评审验收:命名作为交付检查项之一,减少后续沟通成本
  • 培训材料:命名规范是新人最容易记住也最快见效的约定

维表字段示例

维表字段示例
-- dim_shop:命名可自解释
-- shop_sk      代理键,维表主键(版本唯一)
-- shop_id      业务键,源系统门店编码
-- shop_name    门店名称,业务术语全称
-- city_code    城市编码,指向地区维度
-- start_dt     版本生效日期
-- end_dt       版本失效日期(当前行取远期极大值)
-- is_current   当前版本标志
-- etl_time     入库时间,用于排查与重跑
SELECT shop_sk, shop_name FROM dim_shop WHERE is_current = 1;   -- 取当前版本

命名对照

对象规范写法常见问题
表名dim_shopshop_dim / tb_shop 风格混杂
代理键shop_skshop_key 与业务键难区分
业务键shop_id直接用 id,来源不明
时间字段start_dt / end_dt单个 dt 无法判断含义
同义词统一用 shop 不用 store同义多名让下游反复猜
命名规范的价值在于把隐性约定变成可检查的接口。规范只写不查的团队,存量表名会继续混乱,新表也会逐渐偏离。
同一业务概念在不同表里出现多个名字(shop_name 与 store_name)时,下游要么反复询问,要么误以为两者不同,造成重复建模。

易错点

  • 同义字段多名:下游反复确认或误建重复字段,协作成本持续上升
  • 代理键与业务键命名不可区分:关联时用错键,结果偏差且难发现
  • 规范只写不查:存量表继续混乱,新表逐步偏离,规范失去约束力
  • 描述字段用无语义缩写:字段含义靠口口相传,交接时解释成本高

数据来源与参考

  • 数仓建模规范实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌