数据库使用规约

基础规约

1 【强制】必须使用InnoDB存储引擎
2 【强制】必须使用UTF8字符集,是否有表情考虑使用UTF8mb4
3 【强制】数据表、数据字段必须加入中文注释
4 【强制】禁止存储大文件或者大照片
6【强制】表必备字段:id, create_id,create_time,update_id, update_time,dept_id,dept_code,tenant_id。 说明:其中id必为主键,类型为unsigned bigint、单表时自增、步长为1。create_time, update_time 的类型均为 date_time 类型,update_id,create_id为创建人和修改人的id,dept_id为数据归属部门ID,dept_code为数据归属部门code,tenant_id为租户ID。
7 【强制】库名、表名、字段名:小写,下划线风格,不超过32个字符,必须见名知意,禁止拼音英文混用
8 【强制】表名必须使用子系统加模块作为前缀例如:base_sys_user,crm_customer_main,wms_product_main
9 【强制】业务表必须有主键,没有特殊原因就是自增主键,关联表可以没有主键
10 表间关系尽量不做物理约束
11 【强制】禁止在表中做预留字段

索引规约

9【强制】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据 实际文本区分度决定索引长度。
10 禁止在更新十分频繁、区分度不高的属性上建立索引,例如性别
a)更新会变更B+树,更新频繁的字段建立索引会大大降低数据库性能
b)“性别”这种区分度不大的属性,建立索引是没有什么意义的,不能有效过滤数据,性能与全表扫描类似
11 建立组合索引,必须把区分度高的字段放在前面
12 单索引字段数不允许超过5个
13 【强制】页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。
禁止使用 like ‘%xxx%’, 改为 like 'xxx%'

14 【推荐】建组合索引的时候,区分度最高的在最左边。

SQL 使用规约

15 【强制】不要使用 count(列名)或 count(常量)来替代 count(),count()就是 SQL92 定义 的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。
说明:count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。

16 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。
17【强制】禁止(极少)用存储过程、视图、触发器、Event存储过程难以调试和扩展,更没有移植性。影响性能,CPU能力上移
*18 禁止使用SELECT ,只获取必要的字段,需要显示说明列属性
19 禁止使用属性隐式转换全是数字的字符字段也要加上引号
20 禁止在WHERE条件的属性上使用函数或者表达式会导致全表扫描
21 禁止大表使用JOIN查询,禁止大表使用子查询
模块中尽量少用。需要 join 的字段,数据类型保持绝对一致;多表关联查询 时,保证被关联的字段需要有索引。
其他模块中的表禁止join,必须通过接口获取数据

ORM规约

22【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。
说明:1)增加查询分析器解析成本。2)增减字段容易与 resultMap 配置不一致。

23 POJO 类的 boolean 属性不能加 is,而数据库字段必须加 is_,要求在 resultMap 中 进行字段与属性之间的映射。
24 【强制】不要用 resultClass 当返回参数,即使所有类属性名与数据库字段一一对应,也需 要定义;反过来,每一个表也必然有一个与之对应。
说明:配置映射关系,使字段与 DO 类解耦,方便维护。

25 【强制】xml 配置中参数注意使用:#{},#param# 不要使用${} 此种方式容易出现 SQL 注 入。
26【强制】iBATIS自带的queryForList(String statementName,int start,int size)不推 荐使用。
27 【强制】不允许直接拿 HashMap 与 Hashtable 作为查询结果集的输出。
28【强制】更新数据表记录时,必须同时更新记录对应的 gmt_modified 字段值为当前时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值