
SQL开发规范.doc
5页SQLSQL 开发规范开发规范版本版本更新时间更新时间修改人修改人备注备注V1.02016wp目目 录录命名规则........................................................................................................................3PASCAL命名..................................................................................................................3 表名和字段................................................................................................................3 存储过程....................................................................................................................3 视图............................................................................................................................3 其他............................................................................................................................3设计规范........................................................................................................................4规范约定....................................................................................................................4 字段规范....................................................................................................................4使用规范........................................................................................................................4查询语句....................................................................................................................4 数据修改....................................................................................................................4 综合使用....................................................................................................................4命名规则命名规则PascalPascal 命名命名 1.每一个单词的第一个字母大写,例如:BankName 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 操作的影 响。












