|
大家好,有没有哪位做过有关数据库结构设计的评审工作的,评审的范围和标准如何定义,请热心人帮帮忙?
我整理了一份,不知道是否可行,拿出来大家讨论一下,欢迎提意见!
1.设计数据库前(需求分析阶段)
1) 理解客户需求,询问用户如何看待未来需求变化;
2) 了解企业业务;
3) 重视输入输出;
4) 创建数据字典和ER 图表;
5) 定义标准的对象命名规范:数据库各种对象的命名必须规范;
2. 表和字段的设计(数据库逻辑设计)
表设计原则
1)标准化和规范化
2) 数据驱动
3)考虑各种变化
字段设计原则
1)每个表中都应该添加的几个有用的字段:用于准确说明记录中出现null 数据或者丢失数据的原因;
2) 对地址和电话采用多个字段:描述街道地址就短短一行记录是不够的;还有,电话号码和邮件地址最好拥有自己的数据表,其间具有自身的类型和标记类别。
3) 使用角色实体定义属于某类别的列:在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化。
4) 选择数字类型和文本类型尽量充足
5) 增加删除标记字段
3. 选择键和索引(数据库逻辑设计)
键选择原则
1)键设计4 原则:为关联字段创建外键、所有的键都必须唯一、避免使用复合键、外键总是关联唯一的键字段;
2)使用系统生成的主键:设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据库的索引完整性;
3)不要用用户的键(不让主键具有可更新性);
4)可选键有时可做主键:把可选键进一步用做主键,可以拥有建立强大索引的能力。
索引使用原则
1) 逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引
2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键
3) 不要索引memo/note 字段
4) 不要索引常用的小型表:不要为小型数据表设置任何键,假如它们经常有插入和删
除操作就更别这样作了。
4. 数据完整性设计(数据库逻辑设计)
1) 完整性实现机制:实体完整性、参照完整性、用户定义完整性
2) 用约束而非商务规则强制数据完整性
3) 强制指示完整性
4) 使用查找控制数据完整性
5) 采用视图
4. 其他
1)避免使用触发器
触发器的功能通常可以用其他方式实现,在调试程序时触发器可能成为干扰;假如你确实需要采用触发器,你最好集中对它文档化。
2)使用常用英语(或者其他任何语言)而不要使用编码
在创建下拉菜单、列表、报表时最好按照英语名排序;假如需要编码,可以在编码旁附上用户知道的英语。
3)保存常用信息
4)包含版本机制
5)编制文档:对所有的快捷方式、命名规范、限制和函数都要编制文档。采用给表、列、触发器等加注释的数据库工具,对开发、支持和跟踪修改非常有用。对数据库文档化,或者在数据库自身的内部或者单独建立文档;这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。 |
|