文章目录
为什么要做数据库设计规范
- 为了软件的扩展性
- 提高开发效率(好的数据库设计可以减少开发中修改数据库)
- 提高磁盘利用率
- 提高查询效率
1、数据库设计规范化的要求
1、表中应该避免可为空的列
2、表不应该有重复的值或者列
3、表中记录应该有一个唯一的标识符
4、数据库对象要有统一的前缀名
5、尽量只存储单一实体类型的数据
2、数据库设计规范化的目的
1、消灭重复数据。
2、避免编写不必要的,用来使重复数据同步的代码。
3、保持表的瘦身,以及减从一张表中读取数据时需要进行的读操作数量。
4、最大化聚集索引的使用,从而可以进行更优化的数据访问和联结。
5、减少每张表使用的索引数量,因为维护索引的成本很高。
数据库设计规范
1、数据表分类
- 基本数据表:描述业务实体的基本信息。例如,人员基本信息、单位基本信息等。
- 标准编码表:描述属性的列表值。例如,职称、民族、状态等。
- 业务数据表:记录业务发生的过程和结果。例如,人员调动登记、变更通知单等。
- 系统信息表:存放与系统操作、业务控制有关的参数。例如,用户信息、权限、用户配置信息等。
- 统计数据表:存放业务数据统计值。例如,通知单统计、人员类别统计等。
- 临时处理表:存放业务处理过程中的中间结果。
- 其他类型表:存放应用层的日志、消息记录等。
2、字段设计规范
(1)一般来说,应该使用能正确存储和表示数据的最小类型。如果不确定需要什么数据类型,则选择不会超出范围的最小类型。
(2)选择更简单的数据类型。例如,比较整数的代价小于比较字符,因为字符集和排序规则使字符比较更复杂。
(3)尽可能把字段定义为NOT NULL。对于字段能否NULL,应该在SQL建表脚本中明确指明,不应使用缺省。
(4)一个表中的字段不要太多,理论上不要超过80个。
(5)数据库中所有布尔型中数值0表示为假;数值1表示为真
(6)当字段定义为字符串类型时使用VARCHAR2而不用NVARCHAR
(7)字段尽可能有默认值,字符型的默认值为一个空字符值串,数字型的默认值为数值0。
3、键设计规范
(1)为关联字段创建外键。
(2)所有的键都必须唯一。
(3)尽可能避免使用复合键。
(4)外键总是关联唯一的键字段。
(5)尽可能使用系统生成(如序列SEQUENCE产生)的主键。
(6)可选键有时可做主键。