数据库正规化和设计技巧

数据库正规化和设计技巧

ID:9745716

大小:59.50 KB

页数:8页

时间:2018-05-07

数据库正规化和设计技巧_第1页
数据库正规化和设计技巧_第2页
数据库正规化和设计技巧_第3页
数据库正规化和设计技巧_第4页
数据库正规化和设计技巧_第5页
资源描述:

《数据库正规化和设计技巧》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据库正规化和设计技巧>>教育资源库在动态网站的设计中,数据库设计的重要性不言而喻。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。无论你使用的是mySQL或者Oracle数据库,通过进行正规化的表格设计,可以令你的PHP代码更具可读性,更容易扩展,从而也会提升应用的性能。  简单说来,正规化就是在表格设计时,消除冗余性和不协调的从属关系。在本文中,我将通过五个渐进的过程来告诉你在设计中应该了解的正规化技巧。从而建立一个可行而且效率高的数据库。本文也会详细分析一下可以利用的关系类型。</P

2、><P>  这里假定我们要建立一个用户信息的表格,其中要存储用户的名字、公司、公司地址和一些个人的收藏夹或url。在开始时,你可能定义一个如下的表格结构:</P><P>零状态形式</P><P>usersnamepanypany_addressurl1url2JoeABC1epanypany_addressurl1JoeABC1epanypany_address1JoeABC1erelpId1Joe12Jill2</P><P

3、>paniespIdpanypany_address1ABC1WorkLane2XYZ1JobStreet</P><P>urlsurlIdrelUserIdurl11abc.c12345下一页>>>>这篇文章来自..,。om21xyz.32abc.42xyz.</P><P>  这样我们就将panies表中的主键Id和users表中名字为relpId的foreignkey关联起来,就算为ABC公司加入200个员工,在panies中也只有一条记录。我们的u

4、sers和urls表可以不断地扩大,而无需担心插入不必要的数据。大部分的开发者都认为经过三步的正规化就足够了,这个数据库的设计已经可以很方便地处理整个企业的负担,此看法在大多数的情况下是正确的。</P><P>  我们可以留意一下url的字段--你注意到数据的冗余了吗?如果给用户用户输入这些url数据的HTML页面是一个文本框,可任意输入的话,这并没有问题,两个用户输入同样收藏夹的概率较少,不过,如果是通过一个下拉式的菜单,只让用户选择两个url输入,或者更多一点。这种情况下,我们的

5、数据库还可以进行下一级别的优化--第四步,对于大多数的开发者来说,这一步都是忽略的,因为它要依赖一个很特别的关系--一个多对多的关系,这在我们的应用中是还没有遇到过的。数据关系</P><P>  在定义第四个正规化的形式前,我想首先提一下三种基本的数据关系:一对一,一对多和多对多。我们回头看一下经过第一个正规化的users表。要是我们将url的字段放在一个独立的表中,每次在users表中插入一个记录,我们就会在urls表中插入一行。我们将得到一个一对一的关系:用户表中的每一行,都将在

6、urls表中找到相应的一行。对于我们的应用来说,这既不实用也不标准。</P><P>  然后看看第二个正规化的例子。对于每个用户记录,我们的表格允许有多个urls的记录与之关联。这是一个一对多的关系,这是一个很常见的关系。</P><P>  对于多对多的关系来说,就有点复杂了。在我们的第三个正规化形式的例子中,我们的一个用户与很多的url有关,而我们想将该结构变为允许多个用户与多个的urls有关,这样我们就可以得到一个多对多的结构。在讨论前,我们先看看表格结构会

7、有些什么变化</P><P>usersuserIdnamerelpId1Joe12Jill2</P><P>paniespIdpanypany_address1ABC1users,urls,url_relationsusers,urls,url_relationsWHEREusers.userId=url_relations.relatedUserIdANDurls.urlId=url_relations.relatedUrlId</P><P&

8、gt;第五级正规化形式</P><P>还有一级正规化的形式,它并不常见,有点深奥,并且在大部分的情况下都是不必要的。它的原则是:</P><P>1.原来的表格必须可以通过由它分离出去的表格重新构建</P><P>  使用这个规定的好处是,你可以确保不会在分离的表格中引入多余的列,所有你创建的表格结构都与它们的实际需要一样大。应用这条规定是一个好习惯,不过除非你要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。