数仓建模:数据建模命名规范

1. 命名规范作用

  • 防止出现多个系统、多套命名规范;
    • 不同的数据库,有自己不同的规范;
    • 比如 Oracle 就有自己的规范,其他系统的规范在这个系统就不适用;
  • 防止出现歧义;
  • 减少不理解命名现象;
  • 降低沟通成本;

2. 总体要求

  • 清晰:
    • 见名知意;
    • 无歧义;
  • 简单:
    • 易读;
    • 易懂;
    • 不要滥用缩写;
  • 通用:
    • 可以共享;
  • 稳定:
    • 遵循经验共识;
    • 不轻易变更;
  • 一致性:
    • 不同环境、保持同一含义;
  • 用英文:
    • 不要用汉字和拼音;
  • 多用前后缀;
    • 如:un_xxx、pre_xxx;

3. 禁忌规范

3.1. 命名禁忌

  • 不用副词:
    • 如:never、all;
  • 不用冠词:
    • 如:an、the;
  • 不用代词:
    • 如:it、them;
  • 不用负向词:
    • 如:not、no;
  • 不用介词:
    • 如:in、on、of;
  • 不用连词:
    • 如:and、or;
  • 不用比较级:
    • 如:better、more、best;
  • 不用模糊词:
    • 如:like、any;
  • 不要用同义词:
    • 同一含义、只用一个词;
  • 不要一词多用:
    • 每个词指标是一个意思;
  • 不要有错别字;
  • 不要用太专业的生僻词;
    • 尤其是使用比较广泛的表和字段,尽量通俗易懂;
  • 不要标新立异:
    • 不要用大家看不懂的命名;
  • 不用所有格:
    • 如:customers_name;
  • 不用时态、动名词;
  • 缩写不要小写;
    • 尽量用大写,如:CRM;
  • 不要超过 75 个字符;

3.2. 缩写规范

  • 尽可能使用现有缩写;
  • 尽可能行业耳熟能详,不要标新立异;
  • 词组,一般首字母缩写;
  • 大写字母;
  • to:
    • 使用数字 2;
  • for:
    • 使用数字 4;
  • 避免缩写冲突:
    • 同一缩写,不能有多个含义;
  • 保留辅音字母,省略元音字母;

4. 命名对象

4.1. 表空间

  • 数据内容_用途_表空间_序号;
  • 数据内容:
    • 如:customer -> CSTM;
  • 用途:
    • 如:
  • 表空间:
    • 表内数据量;
    • 如:10000条 -> 10K;
  • 序号:
    • 如:第一张表 -> 001;

4.2. 索引 Index

  • <IDX>_<COLUMN_NAME>

4.3. 键 Key

  • 主键:
    • <PK>_<COLUMN_NAME>
  • 外键:
    • <FK>_<COMUMN_NAME>

4.4. 约束

  • <CK>_<COLUMN_NAME>

4.5. ODS 层表命名

  • Schema Name
    • 按照数据来源命名;
  • Table Name
    • 与源表保持一致

4.6. DW 层表命名

  • Schema Name
    • 按照主题命名;
  • Table Name
    • <表分类>_<TABLE_NAME>_<后缀>
    • 后缀:
      • Detail;
      • Log;
      • REF:
        • Reference,参照表,分类表,维度表;

4.7. DM 层表命名

  • Schema Name
    • 按照主题命名;
  • Table Name
    • <分类表>_<TABLE_NAME>_<后缀>
    • 后缀:
      • DIM
        • Dimension,维度表;
      • BRG
        • Bridge,桥接表;
      • FACT
        • 常规事实表
      • PERIOD_SNAP
        • Period_Snapshot,周期快照;
      • ACCUM_SNAP
        • Accumulate_Snapshot,累积快照表;
      • ATOM
        • 原子级别
      • SUMMARY
        • 汇总级别