SQL开发规范

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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操作的影响。

相关文档
最新文档