文档介绍:数据库设计规范
[v1。0]
目 录
第1章 目的 3
第2章 设计规范 3
规范约定 3
2。2 字段规范 3
第3章 使用规范 3
综合 3
查询 5
3。3 增加 5
删除 5
修改 5
第4章 其它说明 5
目的
为了优化数据库的设计,提高数据库设计的合理性和数据访问高效性,同时便于阅读和理解数据库的结构,以提高数据共享的质量和效率,促进数据库编码的标准化,特制订一套数据库设计规范.
设计规范
规范约定
遵守数据的设计规范3NF 规定
表内的每一个值都只能被表达一次.
表内的每一行都应该被唯一的标识(有唯一键)。
表内不应该存储依赖于其他键的非键信息。
字段规范
一行记录必须表内唯一,表必须有主键.
金额类型使用Money
时间使用 DateTime
枚举类型使用 Varchar(2)、Varchar(4),且需要说明枚举类型的各个不同取值的含义,例如 00,01,0000,0001
在主外键的选择上应注意:为关联字段创建外键、所有的键都必须唯一、避免使用复合键、外键总是关联唯一的键字段.
使用规范
综合
数据库的结构只有数据库管理员能够修改,避免开发人员自己增加数据库对象或者修改数据库对象。若要修改,需要讨论并将修改请求(含改动的内容和原因)提交数据库管理员。
数据访问层尽量使用存储过程访问数据库,除非需要繁重的逻辑运算等情况下才在代码中通过DML来访问数据库。
尽量使一个存储过程完成单一功能,复杂存储过程可以由多个单一功能存储过程组成,例如,一个存储过程要增加一个表的记录并删除另一个表的记录,这个存储过程可以有两个子存储过程组成。
在编写存储过程和。NET数据访问程序的时候,需要通过Query Analyzer分析,确保对数据库的操作使用了有效的索引。避免有对全表的扫描操作.
如果开发过程中需要建立索引,需要提交书面的更改请求,说明所需索引的定义(名称、字段列表、顺序、索引类型)。
给表建立索引时,应注意:每当你为一个表添加一个索引,SELECT会更快了,可INSERT和DELETE却大大的变慢了,因为创建了维护索引需要许多额外的工作。显然,这里问题的关键是:你要对这张表进行什么样的操作。
数据库各表的初始数据(包含各代码表、配置表)需要提交给数据库管理员。
避免使用触发器。
涉及到数据库数据的更改(Insert/Delete/Update)必须使用事务进行控制,并且必须有完整事务开始和提交/回滚机制.
尽量避免Union操作的使用,需要使用时,请向数据库管理员咨询使用Union操作的影响。
,,速度慢,用的不好还会浪费大量的空间。一般的,VARCHAR可以更好的处理你的数据。
小心死锁!!
不要忽略同时修改同一记录的问题。有时候,两个用户会同时修改同一记录