Skip to content

数据库设计规范

4.1 参考文档

4.2 主流数据库字段命名长度限制

数据库类型表名字段名
SQL128个字符,临时表116个字符128个字符
ORACLE30个字符30个字符
MYSQL64个字符64个字符

4.3 命名规范

1. 数据库表命名规范

  • 数据库、表、字段名称可由A-Z、a-z、0-9和_下划线组成。
  • 命名应使用英文单词、英语短句、相应缩写。慎用汉语拼音、慎用汉语拼音缩写、英汉混写(地名、专有名词、外接第三方数据除外,需标注)
  • 建议使用小写与下划线命名规则
  • 慎用数字,避免使用关键字\保留字
  • 表命名:基础表:base_ + 表内容,业务表: xxx_ + 表内容
  • 字段命名:单词、多单词由_链接,单数形式,布尔类型加is_
不建议建议备注
mingziname汉语拼音
MZname汉语拼音缩写
show(bool)is_show布尔类型数据库要is_
hong_hairred_hair中英混杂
studentsstudent应使用单数形式
geoToJsongeo_to_json建议使用_下划线拼接
geo2Jsongeo_to_json不建议使用数字
mDaymon/monday不建议使用自定义缩写

2. 视图命名规范

  • 视图的格式如下 V_X_名称,必须以V开头
  • X代表视图的用途,R:报表,M:地图(图属分离查询时使用),T:作为业务表使用,TT中间视图(即给其他视图调用)
  • 名称根据业务需要自行命名,要求言简意赅
  • 视图必须添加注释,规范如下
/*==============================================================*/
/* 创建人: */
/* 功能说明: */
/* 系统模块: */
/* 注意事项: */
/*==============================================================*/

3. 存储过程命名规范

  • 所有的存储过程必须有前缀“PROC_”,例如:PROC_XXXXXX_SELECT,最后的行为动词就是存储过程要执行的任务。
  • 如果存储过程返回一条记录那么后缀是:SELECT
  • 如果存储过程插入数据那么后缀是:INSERT
  • 如果存储过程更新数据那么后缀是:UPDATE
  • 如果存储过程有插入和更新那么后缀是:SAVE
  • 如果存储过程删除数据那么后缀是:DELETE
  • 如果存储过程更新表中的数据 (ie. DROP AND CREATE)那么后缀是:CREATE
  • 如果存储过程返回输出参数或0,那么后缀是:OUTPUT

4. 序列命名规范

  • 所有的序列必须有前缀“SEQ_”,例如:SEQ_表名

5. 触发器命名规范

  • 所有的触发器必须有前缀“TRIGER_“

4.4 使用规范

以下以’tdt_sys_auto_matching’表为测试(数据量31318条)分组 + 预览

  • 慎用select (增加消耗、不能有效利用索引、在数据库变动时易造成bug) 要什么字段取什么字段
  • 使用select *:(时间16.954s) 分组 + 预览
  • 使用具体属性字段:(时间2.961s) 分组 + 预览 %2)OR 改成IN查询,(查询的数据有索引,in效率更高),使用or:(时间2.942s) 分组 + 预览
  • 使用In:(时间2.932s) 分组 + 预览
  • 禁止使用未指定属性插入 insert into table values(x,x,x)(数据库变动易造成bug)
  • 慎用NOT、!=、<>、!<、!>、NOT IN、NOT LIKE,%开头的模糊查询,造成全表查询
  • Mybatis:#{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。
  • 不直接拿 HashMap 与 Hashtable 作为查询结果集的输出,数据类型不可控