数据库设计规范

来自牛奶河Wiki
跳到导航 跳到搜索

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

对象命名原则

建议:

  - 使用有意义之英文词汇,合理使用缩写。多个单词,中间以下划线分割。

  - 较少使用单个字符、单个单词及数字命名,谨慎使用拼音(可以使用有约定俗成之缩写,如BJ)。

  - 使用较多之共用字段时可以自定义名称,如:CREATE_TIME --> CT。

  - 索引以I_ 或P_  或U_等分不同索引,索引包含表名全部或部分,除主键外应包含索引字段全部或部分;也可适当标明特殊索引,如:IB(BITMAP),IR(REVERSE)。

  - 视图以V_开头,包含表名全部或部分,亦可包含部分条件字段;

  - 函数、过程命名应能区分通用及只针对某种表或数据之操作;

防止:

  - 防止数字开头,小写字母;多字节字符;

  - 防止大量使用拼音及拼音缩写;

  - 防止大量使用无意义缩写;

  - 防止同名不同义,同义不同名;

  - 防止使用单个单词、字符;

禁止:

  - 禁止使用保留字;

对象使用原则

建议:

  - 使用少数基础类型

  - 不过多使用自定义TYPE;

  - 谨慎建立索引,不过多建立索引;良好的索引回收机制;

  - 表空间与索引空间分开;

  - 除非必要慎用触发器;

  - SEQuence使用CACHE,大小可根据操作频次调整;RAC环境可根据实际需要,设置是否ORDER;

防止:

  - 防止使用特殊类型,如ORACLE中的xLOB,LONG RAW,TIMESTAME等;

  - 同一用户使用多个表空间;

  - 不同分区使用多个表空间;

禁止:

  - 禁止重复索引,如索引字段顺序重复:ABCD,ABC之为重复索引;

  - 禁止使用时区时间字段;

基础类型

ORACLE

  • varchar2, 1 ~ 4000 or 32767
  • number, (m, n), m < 38
  • date, yyyy-mm-dd hh:mm:ss

MySQL

  • varchar, 1 ~ 65536
  • decimal, (m, n), m >= n, m < 66
    • int, 10位
    • bigint, 19位
  • datetime, yyyy-mm-dd hh:mm:ss
    • date, yyyy-mm-dd
    • time, hh:mm:ss
  • longtext, < 4G
    • text, < 64k

Clickhouse

  • String
  • Decimal
  • Datetime

Greenplum

  • varchar
  • numeric
  • timestamp