- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用文档
数据库设计规范化的五个要求
通常情况下, 可以从两个方面来判断数据库是否设计的比较规范。 一是看看是否拥有大
量的窄表, 二是宽表的数量是否足够的少。 若符合这两个条件, 则可以说明这个数据库的规
范化水平还是比较高的。 当然这是两个泛泛而谈的指标。 为了达到数据库设计规范化的要求,
一般来说,需要符合以下五个要求。
要求一:表中应该避免可为空的列。
虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库在处理的时候,
需要进行特殊的处理。 如此的话, 就会增加数据库处理记录的复杂性。 当表中有比较多的空
字段时,在同等条件下,数据库处理的性能会降低许多。
所以,虽然在数据库表设计的时候,允许表中具有空字段,但是,我们应该尽量避免。
若确实需要的话, 我们可以通过一些折中的方式, 来处理这些空字段, 让其对数据库性能的
影响降低到最少。
一是通过设置默认值的形式, 来避免空字段的产生。 如在一个人事管理系统中, 有时候
身份证号码字段可能允许为空。 因为不是每个人都可以记住自己的身份证号码。 而在员工报
到的时候,可能身份证没有带在身边。所以,身份证号码字段往往不能及时提供。为此,身
份证号码字段可以允许为空,以满足这些特殊情况的需要。但是, 在数据库设计的时候,则
可以做一些处理。如当用户没有输入内容的时候,则把这个字段的默认值设置为 0 或者为
N/A。以避免空字段的产生。
二是若一张表中,允许为空的列比较多, 接近表全部列数的三分之一。 而且, 这些列在
大部分情况下, 都是可有可无的。 若数据库管理员遇到这种情况, 笔者建议另外建立一张副
表, 以保存这些列。 然后通过关键字把主表跟这张副表关联起来。 将数据存储在两个独立的
表中使得主表的设计更为简单,同时也能够满足存储空值信息的需要。
要求二:表不应该有重复的值或者列。
如现在有一个进销存管理系统, 这个系统中有一张产品基本信息表中。 这个产品开发有
时候可以是一个人完成, 而有时候又需要多个人合作才能够完成。 所以, 在产品基本信息表
产品开发者这个字段中,有时候可能需要填入多个开发者的名字。
如进销存管理中, 还需要对客户的联系人进行管理。 有时候, 企业可能只知道客户一个
采购员的姓名。 但是在必要的情况下,企业需要对客户的采购代表、仓库人员、财务人员共
同进行管理。因为在订单上,可能需要填入采购代表的名字 ; 可是在出货单上,则需要填入
仓库管理人员的名字等等。
为了解决这个问题, 有多种实现方式。但是, 若设计不合理的话在,则会导致重复的值
或者列。如我们也可以这么设计,把客户信息、联系人都放入同一张表中。 为了解决多个联
系人的问题,可以设置第一联系人、第一联系人电话、第二联系人、第二联系人电话等等。
若还有第三联系人、第四联系人等等,则往往还需要加入更多的字段。
可是这么设计的话, 会产生一系列的问题。 如客户的采购员流动性比较大, 在一年内换
了六个采购员。 此时, 在系统中该如何管理呢 ?难道就建立六个联系人字段 ?这不但会导致空
字段的增加,还需要频繁的更改数据库表结构。明显,这么做是不合理的。也有人说,可以
文案大全
实用文档
直接修改采购员的名字呀。 可是
文档评论(0)