数据库设计规范
跳到导航
跳到搜索
以下规则适用于数据库之表、视图、函数、过程、包等对象命名,以及字段、变量命名之约定。
对象命名原则
建议:
- 使用有意义之英文词汇,合理使用缩写。多个单词,中间以下划线分割。
- 较少使用单个字符、单个单词及数字命名,谨慎使用拼音(可以使用有约定俗成之缩写,如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