您好,欢迎访问三七文档
重庆艾思博科技有限公司数据库设计规范[v1.0]重庆艾思博科技有限公司目录第1章目的................................................................................................................................................3第2章设计规范........................................................................................................................................32.1规范约定........................................................................................................................................32.2字段规范........................................................................................................................................3第3章使用规范........................................................................................................................................33.1综合................................................................................................................................................33.2查询................................................................................................................................................53.3增加................................................................................................................................................53.4删除................................................................................................................................................53.5修改................................................................................................................................................5第4章其它说明........................................................................................................................................6重庆艾思博科技有限公司第1章目的为了优化数据库的设计,提高数据库设计的合理性和数据访问高效性,同时便于阅读和理解数据库的结构,以提高数据共享的质量和效率,促进数据库编码的标准化,特制订一套数据库设计规范。第2章设计规范2.1规范约定遵守数据的设计规范3NF规定表内的每一个值都只能被表达一次。表内的每一行都应该被唯一的标识(有唯一键)。表内不应该存储依赖于其他键的非键信息。2.2字段规范一行记录必须表内唯一,表必须有主键。金额类型使用Money时间使用DateTime枚举类型使用Varchar(2)、Varchar(4),且需要说明枚举类型的各个不同取值的含义,例如00,01,0000,0001在主外键的选择上应注意:为关联字段创建外键、所有的键都必须唯一、避免使用复合键、外键总是关联唯一的键字段。第3章使用规范3.1综合数据库的结构只有数据库管理员能够修改,避免开发人员自己增加数据库对象或者重庆艾思博科技有限公司修改数据库对象。若要修改,需要讨论并将修改请求(含改动的内容和原因)提交数据库管理员。数据访问层尽量使用存储过程访问数据库,除非需要繁重的逻辑运算等情况下才在代码中通过DML来访问数据库。尽量使一个存储过程完成单一功能,复杂存储过程可以由多个单一功能存储过程组成,例如,一个存储过程要增加一个表的记录并删除另一个表的记录,这个存储过程可以有两个子存储过程组成。在编写存储过程和.NET数据访问程序的时候,需要通过QueryAnalyzer分析,确保对数据库的操作使用了有效的索引。避免有对全表的扫描操作。如果开发过程中需要建立索引,需要提交书面的更改请求,说明所需索引的定义(名称、字段列表、顺序、索引类型)以及建立的理由。数据库管理员统一维护索引并将提交的请求更改。给表建立索引时,应注意:每当你为一个表添加一个索引,SELECT会更快了,可INSERT和DELETE却大大的变慢了,因为创建了维护索引需要许多额外的工作。显然,这里问题的关键是:你要对这张表进行什么样的操作。数据库各表的初始数据(包含各代码表、配置表)需要提交给数据库管理员。避免使用触发器。涉及到数据库数据的更改(Insert/Delete/Update)必须使用事务进行控制,并且必须有完整事务开始和提交/回滚机制。尽量避免Union操作的使用,需要使用时,请向数据库管理员咨询使用Union操作的影响。尽量不要使用TEXT数据类型。除非你使用TEXT处理一个很大的数据,否则不要使用它。因为它不易于查询,速度慢,用的不好还会浪费大量的空间。一般的,VARCHAR可以更好的处理你的数据。小心死锁!!不要忽略同时修改同一记录的问题。有时候,两个用户会同时修改同一记录,这样,后一个修改者修改了前一个修改者的操作,某些更新就会丢失。处理这种情况不是很难:创建一个timestamp字段,在写入前检查它,如果允许,就合并修改,如果存在冲突,提示用户。重庆艾思博科技有限公司不建议使用游标。尽量不要使用临时表。可以考虑使用Table数据类型代替。3.2查询在表查询中,一律不要使用*作为查询的字段列表,需要哪些字段必须显式写明。在表查询中,必须有Where条件,除非此表为非增长表,比如字典表。在表查询中,一次最多返回的记录条数不要超过1000条或记录内容不要大于1MB的数据。在表查询中,作OrderBy排序时,优先使用主键列,索引列。因大量的排序操作会降低数据库的性能,应谨慎。避免嵌套连接,例如:A=BandB=CandC=D。多表关联查询时,优先使用Where条件,再作表关联,并且需要保证被关联的字段需要有索引。尽量少用嵌套查询,过多嵌套会严重的降低数据库性能,在使用时要注重其合理性。3.3增加不要使用INSERT导入大批的数据。使用UTS或者BCP,这样你可以一举而兼得灵活性和速度。3.4删除删除记录时,必须有Where唯一条件当有主从表时,要先删除从表记录,在删除主表记录3.5修改修改记录时,必须有Where唯一条件重庆艾思博科技有限公司第4章其它说明
本文标题:数据库设计规范
链接地址:https://www.777doc.com/doc-6069301 .html