数据库通用规范

来自牛奶河Wiki
阿奔讨论 | 贡献2022年12月29日 (四) 16:40的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

DB通用规范说明

以下规则适用于数据库之表、视图、函数、过程、包等对象命名,以及字段、变量命名之约定;


对象命名原则

建议:

  • 使用有意义之英文词汇,合理使用缩写。多个单词,中间以下划线分割
  • 较少使用单个字符、单个单词及数字命名,谨慎使用拼音(可以使用有约定俗成之缩写,如BJ)
  • 使用较多之共用字段时可以自定义名称,如:CREATE_TIME --> CT
  • 索引以I_ 或P_ 或U_等分不同索引,索引包含表名全部或部分,除主键外应包含索引字段全部或部分;也可适当标明特殊索引,如:IB(BITMAP),IR(REVERSE)
  • 视图以V_开头,包含表名全部或部分,亦可包含部分条件字段
  • 函数、过程命名应能区分通用及只针对某种表或数据之操作

防止:

  • 防止数字开头,小写字母;多字节字符
  • 防止大量使用拼音及拼音缩写
  • 防止大量使用无意义缩写
  • 防止同名不同义,同义不同名
  • 防止使用单个单词、字符

禁止:

  • 禁止使用保留字

对象使用原则

建议:

  • 使用少数基础类型
    • 如ORACLE中的VARCHAR2,NUMBER,DATE等;
    • 如Clickhouse中的 String、Int8(有效2位)/Int64、Datetime、Decimal等;
    • 如Greenplum中的 varchar、numeric、timestamp等;
  • 不过多使用自定义TYPE;
  • 谨慎建立索引,不过多建立索引;良好的索引回收机制;
  • 表空间与索引空间分开;
  • 除非必要慎用触发器;
  • SEQuence使用CACHE,大小可根据操作频次调整;RAC环境可根据实际需要,设置是否ORDER;

防止:

  • 防止使用特殊类型,如ORACLE中的xLOB,LONG RAW,TIMESTAME等;
  • 同一用户使用多个表空间;
  • 不同分区使用多个表空间;

禁止:

  • 禁止重复索引,如索引字段顺序重复:ABCD,ABC之为重复索引;
  • 禁止使用时区时间字段;