MySQL设计编码规范

领导最近要求大家写一份MySQL设计编码规范,以便以后开发规范化...

项目组同事百度谷歌加个人统计出来如下一份...感觉挺不错的



1、禁止使用触发器、存储过程、外键约束。

2、所有命名都一律小写,分隔符使用下划线_。

     数据库命名规范: $系统_$子系统,例如 crm_product、crm_contract等。

     表命名规范:[t_v]_$模块名_$表名,例如 t_user_info、t_user_employee。

3、数据库表及字段均需要增加comment备注信息,方便理解

4、数据库表必须有主键、严禁使用组合主键,推荐使用id字段,且字段为unsigned、自增、pk、uniq

5、数据库字段均需设置为NOT NULL,避免null数据操作问题,同时设置默认值

6、数据库索引命名规则,非唯一索引idx_{name},唯一索引uniq_{name}

7、数据库库名、表名、字段名禁止超过32个字符

8、库名、表名、字段名禁止使用mysql保留字

9、临时库、表名必须以tmp为前缀,以日期为后缀,如:tmp_test01_20161127

10、尽量不使用TEXT、BLOB类型

11、禁止在数据库表中存储明文密码

12、使用尽可能小的varchar字段,varchar(N)中的N表示字符书而非字节数

13、数据库表使用INNODB存储引擎

14、数据库表字符集统一使用UTF8MB4字符集

15、禁止在数据库表中存储图片、文件等大数据

16、禁止在线上做数据库压力测试

17、禁止从测试、开发环境直连线上数据库

18、单张表索引数量不超过5个

19、单个索引中的字段数不超过5个

20、组合索引建议包含所有字段名,过长的字段名可用采用缩写形式,如:idx_mobile_token_valid

21、联表查询时,join列的数据类型必须相同,并且需要建立索引

22、跨模块之间严禁连接查询。

23、严禁三个表以上的链接查询。

24、严禁使用mysql函数,例如:now()、rand()、sysdate()、current_user()。

25、每个表不许超过20个字段,大字段务必拆分出来。

26、严格禁止单条记录超过8K。

27、禁止冗余索引,例如:(a,b,c)、(a,b),后者为冗余索引。




你可能感兴趣的:(mysql,编码,开发规范,设计)