SQL开发规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL开发规范
目录
命名规则 (3)
P ASCAL命名 (3)
表名和字段 (3)
存储过程 (3)
视图 (3)
其他 (3)
设计规范 (4)
规范约定 (4)
字段规范 (4)
使用规范 (4)
查询语句 (4)
数据修改 (4)
综合使用 (4)
命名规则
Pascal命名
1.每一个单词的第一个字母大写,例如:B ank N ame
2.常用单词缩写三个字母以下字母都大写,例如:SP、PG
3.常用单词缩写三个字母以上第一个字母大写,例如:Xml
表名和字段
1.使用英文单词或词组作为表名,不得使用汉语拼音
2.如有必要,建立一个中英文对照字典
3.用名词和名词短语作表名
4.不使用复数,除非与数据库保留字冲突
5.用Pascal 命名规则
6.尽量谨慎地使用缩写
7.尽量不要和关键字重合
8.必要时,使用下划线分割单词
示例
ProductName
存储过程
命名规则为TableName_action或前缀_ActionName,作业调度使用Job前缀,action或ActionName为存储过程含义用动词或动词短语来命名
1.使用常见的缩写,尽量不要和关键字重合
2.适当的使用下划线分割过长的名称
3.当操作依赖条件时,结尾使用By+条件
4.过长的SQL语句需要手工折行
示例:
AdminUser_ins Job_Dowork
视图
视图的命名采用V_ViewName的格式,其中V_前缀表示视图,ViewName部分表示视图的含义。
1.使用英文单词或词组作为视图名,不得使用汉语拼音
2.用名词和名词短语作视图名
3.不使用复数,除非与数据库保留字冲突
4.用Pascal 命名规则
5.尽量谨慎地使用缩写
6.尽量不要和关键字重合
7.必要时,使用下划线分割单词
视图正确的命名,例如:
V_UserInfo
其他
1.使用英文单词或词组作为数据库对象名,不得使用汉语拼音
2.用名词和名词短语作为名称,非必要情况下不添加前缀
3.不使用复数,除非与数据库保留字冲突
4.用Pascal 命名规则
5.尽量谨慎地使用缩写
6.尽量不要和关键字重合
7.必要时,使用下划线分割单词
设计规范
规范约定
遵守数据的设计规范3NF 规定
1.表内的每一个值都只能被表达一次。
2.表内的每一行都应该被唯一的标识(有唯一键)。
3.表内不应该存储依赖于其他键的非键信息。
字段规范
1.一行记录必须表内唯一,业务表必须有主键。
2.金额类型使用Money,时间使用DateTime。
3.ID结尾的字段一般由数字组成,Code结尾的字段一般由字母或数字组成。
使用规范
查询语句
1.在表查询中,不要使用*作为查询的字段列表,需要哪些字段必须显式写明。
2.在表查询中,必须有Where条件,除非此表为非增长表。
3.在表查询中,一次最多返回的记录条数不要超过1000条或记录内容不要大于1MB
的数据。
4.在表查询中,作Order By排序时,优先使用主键列,索引列。
5.多表关联查询时,优先使用Where条件,再作表关联,并且需要保证被关联的字
段需要有索引。
数据修改
1.当批量增加/修改时,建议解决的原则:
a)一次性传入数据到存储过程中,然后,拆分再加入表
b)使用BCP/Bulk Insert的情况
2.删除记录时,必须有Where唯一条件。
3.当有主从表时,要先删除从表记录,在删除主表记录。
4.修改记录时,必须有Where唯一条件。
5.查询的数据库较大,且此查询功能经常被使用,需单独分页。
综合使用
1.数据库的结构修改必须报项目负责人知晓,任何开发人员不得擅自增加或者修改数
据库对象。需要修改,需要讨论并将提交变更请求跟上级主管或项目负责人。
2.数据访问层一律使用存储过程访问数据库,不得在.NET程序使用直接的DML语
句访问数据库。有特殊要求,需要提请项目负责人批准。
3.不要将大量业务逻辑都写在一个存储过程里,尽量使一个存储过程完成单一功能,
复杂存储过程可以由多个单一功能存储过程组成。
4.开发过程中需要建立索引,需要提交书面的更改请求,说明所需索引的定义(名称、
字段列表、顺序、索引类型)以及建立的理由。项目负责人统一维护索引并将提交的请求更改。
5.数据库各表的初始数据(包含各代码表、配置表)需要提交给项目负责人。
6.禁止使用触发器。
7.涉及到数据库数据的批量更改必须使用事务进行控制,必须有事务开始和提交/回
滚机制。
8.避免Union操作的使用,需要使用时,请向项目负责人咨询使用Union操作的影响。