1. 1. 本规范分为三个章节
- 介绍
- 第一章 – 数据库规范
- 第二章 – JAVA代码书写规范
- 第三章 - SQL语句规范
1. 2. 语言
本文中用到的关键字 必须=强制。不能=强制。要求=强制,如果有特殊情况,需要商讨后决定是否可以解除此次强制。应该=不强制,但如果不遵守,可能会出现意外情况。不应该=不强制,但如果不遵守,可能会出现意外情况。推荐=不强制,根据经验总结出的相对较好的方案, 可以不遵守。可以=不强制,明确指定允许做的事情。可选=不强制,任选其一,可以都不选择。
第一章 数据库规范
1. 1. 要求:依据以下标准建立数据模型
序 | 字段种类 | 命名规范 | 数据类型 | 长度 |
---|---|---|---|---|
1 | 编码(对象编码,第三方单号,第三方编号) | xx_code | varchar | 64 |
2 | 名称 | xx_name | varchar | 128 |
3 | 日期(不带时分秒) | xxx_date | date | |
4 | 时间(带时分秒) | xxx_time | datetime | |
5 | 对象状态 | xxx_status | int | 4 |
6 | 备注 | remark | varchar | 512 |
7 | 文本 | xxx_text | text | 无须填写 |
8 | 外键 | xxx表_id(例:biz_corp_id) | 与主表相同 | 与主表相同 |
9 | 是否删除 | delete_flag | tinyint | 1 |
10 | 是否字段 | xxx_flag | tinyint | 1 |
11 | 创建人id | creator_uid | 与主表相同 | 与主表相同 |
12 | 创建人名称 | creator | 与主表相同 | 与主表相同 |
13 | 创建时间 | create_time | datetime | |
14 | 更新人id | updator_uid | 与主表相同 | 与主表相同 |
15 | 更新人名称 | updator | 与主表相同 | 与主表相同 |
16 | 更新时间 | update_time | datetime |
注: 如果需要在实体类中用Boolean类型的字段, 请用tinyint类型,长度为1.
如果字段的命名长度超过20个字符,可以进行删减.
(暂停推广)归类 | (暂停推广) 前缀 |
---|---|
系统配置: | sys_ |
个人中心: | my_ |
基础数据服务: | bd_ (已有:公司/项目/职位/人才/简历/用户(顾问)/) |
pipeline: | ppl_ |
业务: | biz_ |
基础数据字典: | base_ |
日志相关(建立在自己的归类下): | xxx_oper_ |
kpi操作: | kpi_ |
第二章 JAVA代码书写规范
1. 1. 强制:不使用双重否定
目的:1.增加可读性
例如 :
(错误示例) isNotFoundNotExistByKey(是否找不到不存在的KEY )
(正确示例) isExistByKey(是否存在KEY )
(错误示例) if(!isNotEmpty())
(正确示例) if(isEmpty())
1. 2. 强制:DB层的Mapper命名 计数方法count作为前缀,存在方法exist作为前缀, 查询方法select作为前缀,增加方法insert作为前缀,修改方法update作为前缀,保存或新增insertOrUptate, 删除方法delete作为前缀,不允许以业务操作命名
目的:1.增加可读性。2.与业务隔离
注: 计数方法指 count(*),只返回个数的查询方法
1. 3. 强制:DB服务SQL只能写在xml文件中。
目的:1.增加可维护性。
第三章 SQL语句规范
1. 1. 要求:用嵌套查询或拆分查询替代挂表查询
目的:1.减少磁盘IO
注: 先用EXPLAIN看一下
1. 2. 要求:连表不超过3张,优先短查询, 不允许关联非自身服务的数据表
目的:1.减少磁盘IO。2.解耦,为系统服务化做准备
1. 3. 要求:短查询
目的:1.减少磁盘IO。2.解耦,为系统服务化做准备 3.日后方便有针对性的调优