MYSQL 数据库开发规范

红色字体:强规则(强制使用);蓝色字体:弱规则(建议使用);绿色字体:案例

 

0.概述

背景

 

数据库是公司信息的核心,其应用水平的高低直接影响到公司业务的发展水平。如果数据库系统设计不合理,不仅会增加客户端和服务器端程序的编程和维护的难度,而且还会影响系统实际运行的性能。为了保证数据库运行在最佳的性能状态下,特制订此规范。

简介

 

本规范由以下三部分组成:

第一部分数据库设计规范。主要对数据库中对象(如表,索引,存储过程)等的名称及使用情况做了相关约定。

第二部分SQL编写规范。针对常用SQL,分页语句,常用函数及关联查询等SQL编写制定的规则及优化建议。

第三部分ibatisSqlMap编写规范,针对使用Ibatis框架时遵循的特殊编码约定。

适用范围

本规范适用于mysql5及以上版本主要读者对象是在mysql上应用开发程序员,开发DBA以及SQL优化相关人员。

术语定义

规则:开发过程中强制必须遵守的原则。

建议:开发过程中必须加以考虑的原则,需要咨询DBA根据实际情况确定。

说明:对此规则或建议进行必要的解释。

示例:对此规则或建议从正、反两个方面给出。

1.命名规范

说明:指数据库对象如表(TABLE),索引(INDEX),序列(SEQUENCE)等的命名约定。

1.1基本命名原则

规则1.1.1:命名使用具有意义的英文词汇(或能明确表达含义的缩写),词汇中间以下划线分隔。

规则1.1.2:命名只能使用英文字母,数字,下划线,并以英文字母开头。(杜绝混用英文字母大小写,要求全部使用小

写字母)

规则1.1.3:避免用MySQL的保留字如level,关键字如type,text

1.2表命名

建议1.2.1:同一个模块的表尽可能使用相同的前缀,表名称尽可能表达含义。

表名如果有前缀,尽量用库名或者库名缩写(不建议用例如“za”等字符作为前缀)

规则1.2.2:长度不超过25个字符。

规则1.2.3:不允许表名含义模糊(例如:report_areport_breport_c

1.3字段命名

规则1.3.1:表达其实际含义的英文单词或简写。MySQL:布尔意义的字段以"is_"作为前缀,后接动词过去分词。

规则1.3.2:各表之间相同意义的字段应同名。MySQL:同时应保持类型及长度的一致。

建议1.3.3:外键字段用表名_字段名表示其关联关系。MySQL:禁止使用外键约束,在应用层实现关联关系。

sfa_opportunity.id=sfa_account.opportunity_id示例(MySQL字段brmms_group.idbrmms_contact引用;

brmms_contact表中与之对应的字段命名为:group_id

1.4索引命名

规则1.4.1:idx_表名称_字段名:idx_表名称_字段名如字段较多,则使用功能描述性英文单词。MySQL复合索引务必

应考虑最佳左前缀。

示例(普通索引)samplemember_id上的indexidx_sample_memberid

示例(唯一索引):samplemember_id上唯一索引:uk_sample_memberid

示例(符合索引)samplemember_idorder_id上的indexidx_sample_memberid_orderid

1.5约束命名

规则1.5.1:主键约束:表名称_PK

规则1.5.2:唯一约束:表名称_字段名_UKMySQL:除主键外,需存在唯一性约束的,可通过创建以"uk_"为前缀的唯

一索引实现,但应用中需要同时有唯一性检查逻辑。

1.6序列命名

规则1.6.1:seq_表名。

2.对象设计使用规范

2.1常用数据类型

说明:以下为常用数据类型介绍,表设计时根据根据实际应用选择。

MySQL中,仅可以使用下文提及的数据类型,所有表、字段必须添加能够清楚表示其含义的注释(comment

)——状态类字段的注释中必须明确列出各状态值的说明。

DECIMAL(M,D):

当表示定点小数的情况下使用该类型。定点数在MySQL内部以二进制格式存储,比浮点数更精确,适合用来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向日葵

你的秀美双手的鼓励是我创作的持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值