Commit f99ae86e authored by 王鹏鸿's avatar 王鹏鸿

Update gm-sql-rules.md

parent a517838d
......@@ -16,20 +16,19 @@
3. 命名避免使用 Mysql 的保留字(详见附录 A)和系统关键字。
5. 命名全部采用小写,并且名称前后不能加引号。
### 数据库对象设计规范
#### 1. 表
##### 表设计
1. 在设计时尽量包含两个日期字段:gmt_created(创建日期),gmt_modified(修改日期)且非空, 对表的记录进行更新的时候,必须包含对 gmt_modified 字段的更新。datetime, timestamp?
1. 在设计时尽量包含两个日期字段:gmt_created(创建日期),gmt_modified(修改日期)且非空, 对表的记录进行更新的时候,必须包含对 gmt_modified 字段的更新。
datetime, timestamp??? 业务方同学确认下。
2. 必须要有主键,主键尽量用自增字段类型,推荐类型为 INT 或者 BIGINT 类型。
3. 需要多表 join 的字段,数据类型保持绝对一致。
4. 当表的字段数非常多时,可以将表分成两张表,一张作为条件查询表,一张作为详细内容表(主要是为了性能考虑)。case by case
5. 当字段的类型为枚举型或布尔型时,建议使用 char(1)类型。??
6. 同一表中,所有 varchar 字段的长度加起来,不能大于 65535.如果有这样的需求,请使用 TEXT/LONGTEXT 类型。
5. 同一表中,所有 varchar 字段的长度加起来,不能大于 65535.如果有这样的需求,请使用 TEXT/LONGTEXT 类型。
##### 表命名
> 业务团队同学共同参与制定
> 业务开发团队制定
参考:
1. 同一个模块的表尽可能使用相同的前缀,表名尽可能表达含义,例如:CRM_SAL_FUND_ITEM。
......@@ -44,14 +43,12 @@
##### 字段注释
- 新增列、新建表,务必增加字段注释
![](https://tva1.sinaimg.cn/large/007S8ZIlly1ggsonreafij30hd0u2751.jpg)
1. 新增列、新建表,务必增加字段注释
#### 2. 索引
##### 设计
1. 联合索引的第一个字段上不再建立普通索引
##### 命名
1. 普通索引使用idx_
......@@ -59,9 +56,7 @@
### SQL开发规范
### SQL开发规范(建议)
#### 1. 编码&格式规范
1. 表与表的关联只使用左连接和全连接,避免使用右连接,保证主表在前,从表在后的顺序,按照从左向右的思维逻辑,方便SQL业务逻辑的阅读
......@@ -74,7 +69,6 @@
## 规范收集箱
1 不允许drop table / column
2 禁止在create table语句中指定字符集为utf8。我们所有环境mysql指定字符集为utf8mb4 存储引擎为innodb
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment