数据库设计规范化的五个要求.doc下载

weixin_39821228 2023-01-24 11:00:35
数据库设计规范化的五个要求 通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有 大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据 库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规 范化的要求,一般来说,需要符合以下五个要求。   要求一:表中应该避免可为空的列。   虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时 候,需要进行特殊的处理。如此的话,就会增加数据库处理记录的复杂性。当表中有比 较多的空字段时,在同等条件下,数据库处理的性能会降低许多。   所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避 免。若确实需要的话,我们可以通过一些折中的方式,来处理这些空字段,让其对数据 库性能的影响降低到最少。   一是通过设置默认值的形式,来避免空字段的产生。如在一个人事管理系统中,有 时候身份证号码字段可能允许为空。因为不是每个人都可以记住自己的身份证号码。而 在员工报到的时候,可能身份证没有带在身边。所以,身份证号码字段往往不能及时提 供。为此,身份证号码字段可以允许为空,以满足这些特殊情况的需要。但是,在数据 库设计的时候,则可以做一些处理。如当用户没有输入内容的时候,则把这个字段的默 认值设置为0或者为N/A。以避免空字段的产生。   二是若一张表中,允许为空的列比较多,接近表全部列数的三分之一。而且,这些 列在大部分情况下,都是可有可无的。若数据库管理员遇到这种情况,笔者建议另外建 立一张副表,以保存这些列。然后通过关键字把主表跟这张副表关联起来。将数据存储 在两个独立的表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。   要求二:表不应该有重复的值或者列。   如现在有一个进销存管理系统,这个系统中有一张产品基本信息表中。这个产品开 发有时候可以是一个人完成,而有时候又需要多个人合作才能够完成。所以,在产品基 本信息表产品开发者这个字段中,有时候可能需要填入多个开发者的名字。   如进销存管理中,还需要对客户的联系人进行管理。有时候,企业可能只知道客户 一个采购员的姓名。但是在必要的情况下,企业需要对客户的采购代表、仓库人员、财 务人员共同进行管理。因为在订单上,可能需要填入采购代表的名字;可是在出货单上, 则需要填入仓库管理人员的名字等等。   为了解决这个问题,有多种实现方式。但是,若设计不合理的话在,则会导致重复 的值或者列。如我们也可以这么设计,把客户信息、联系人都放入同一张表中。为了解 决多个联系人的问题,可以设置第一联系人、第一联系人电话、第二联系人、第二联系 人电话等等。若还有第三联系人、第四联系人等等,则往往还需要加入更多的字段。   可是这么设计的话,会产生一系列的问题。如客户的采购员流动性比较大,在一年 内换了六个采购员。此时,在系统中该如何管理呢?难道就建立六个联系人字段?这不但 会导致空字段的增加,还需要频繁的更改数据库表结构。明显,这么做是不合理的。也 有人说,可以直接修改采购员的名字呀。可是这么处理的话,会把原先采购订单上采购 员的名字也改变了。因为采购单上客户采购员信息在数据库中存储的不是采购员的名字 ,而只是采购员对应的一个编号。在编号不改而名字改变了的情况下,采购订单上显示 的就是更改后的名字。这不利于时候的追踪。   所以,在数据库设计的时候要尽量避免这种重复的值或者列的产生。笔者建议,若 数据库管理员遇到这种情况,可以改变一下策略。如把客户联系人另外设置一张表。然 后通过客户ID把供应商信息表跟客户联系人信息表连接起来。也就是说,尽量将重复的 值放置到一张独立的表中进行管理。然后通过视图或者其他手段把这些独立的表联系起 来。   要求三:表中记录应该有一个唯一的标识符。   在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来唯一的 标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID 列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最好有数据库来进行自动 管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。   另外,在数据库设计的时候,最好还能够加入行号。如在销售订单管理中,ID号是 用户不能够维护的。但是,行号用户就可以维护。如在销售订单的行中,用户可以通过 调整行号的大小来对订单行进行排序。通常情况下,ID列是以1为单位递进的。但是,行 号就要以10为单位累进。如此,正常情况下,行号就以10、 20、30依次扩展下去。若此时用户需要把行号为30的纪录调到第一行显示。此时,用户 在不能够更改ID列的情况下,可以更改行号来实现。如可以把行号改为1,在排序时就可 , 相关下载链接:https://download.csdn.net/download/qq_43966957/87372658?utm_source=bbsseo
...全文
浏览 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
发帖
下载资源悬赏专区

1.1w+

社区成员

CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
帖子事件
创建了帖子
2023-01-24 11:00
社区公告
暂无公告