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

Update gm-sql-rules.md

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