对象命名规范

用于规范数据库对象的命名,如数据库(DATABASE)、表(TABLE)、索引(INDEX)、用户(USER)等的命名约定。

原则

  • 命名建议使用具有意义的英文词汇,词汇中间以下划线分隔。
  • 命名只能使用英文字母、数字、下划线。
  • 避免用 TiDB 的保留字如:group,order 等作为单个字段名。
  • 建议所有数据库对象使用小写字母。

数据库命名规范

建议按照业务、产品线或者其它指标进行区分,一般不要超过 20 个字符。如:临时库 (tmp_crm)、测试库 (test_crm)。

表命名规范

  • 同一业务或者模块的表尽可能使用相同的前缀,表名称尽可能表达含义。
  • 多个单词以下划线分隔,不推荐超过 32 个字符。
  • 建议对表的用途进行注释说明,以便于统一认识。如:
    • 临时表(tmp_t_crm_relation_0425)
    • 备份表(bak_t_crm_relation_20170425)
    • 业务运营临时统计表(tmp_st_{business code}_{creator abbreviation}_{date}
    • 账期归档表(t_crm_ec_record_YYYY{MM}{dd}
  • 不同业务模块的表单独建立 DATABASE,并增加相应注释。

字段命名规范

  • 字段命名需要表示其实际含义的英文单词或简写。
  • 建议各表之间相同意义的字段应同名。
  • 字段也尽量添加注释,枚举型需指明主要值的含义,如”0 - 离线,1 - 在线”。
  • 布尔值列命名为 is_{description}。如 member 表上表示为 enabled 的会员的列命名为 is_enabled。
  • 字段名不建议超过 30 个字符,字段个数不建议大于 60。
  • 尽量避免使用保留字,如 order、from、desc 等,请参考附录部分的官方保留字。

索引命名规范

  • 主键索引:pk_{表名称简写}_{字段名简写}
  • 唯一索引:uk_{表名称简写}_{字段名简写}
  • 普通索引:idx_{表名称简写}_{字段名简写}
  • 多单词组成的 column_name,取尽可能代表意义的缩写。