|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。技能|计划|数据|数据库在静态网站的计划中,数据库计划的主要性不问可知。假如计划不妥,查询起来就十分费劲,程序的功能也会遭到影响。不管你利用的是mySQL大概Oracle数据库,经由过程举行正轨化的表格计划,能够令你的PHP代码更具可读性,更简单扩大,从而也会提拔使用的功能。
复杂说来,正轨化就是在表格计划时,打消冗余性和不和谐的附属干系。在本文中,我将经由过程五个渐进的历程来告知你在计划中应当懂得的正轨化技能。从而创建一个可行并且效力高的数据库。本文也会具体剖析一下能够使用的干系范例。
这里假定我们要创建一个用户信息的表格,个中要存储用户的名字、公司、公司地点和一些团体的保藏夹或url。在入手下手时,你大概界说一个以下的表格布局:
零形态情势
users
namecompanycompany_addressurl1url2
JoeABC1WorkLaneabc.comxyz.com
JillXYZ1JobStreetabc.comxyz.com
因为没有举行任何的正轨化处置,我们将这类情势的表称为零形态情势的表。寄望个中的url1和url2字段---假如我们在使用中必要第三个url呢?如许你就要在表格中多加一列,很分明,这不是一个好举措。假如你要创立一个富有扩大性的体系,你就要思索利用第一个正轨化的情势,而且使用到该表格中。
第一级正轨化情势
1.打消每一个表格中反复的组
2.为每套相干的数据创建一个自力的表格
3.利用一个主键来标识每套相干的数据
以上的表格分明违背了下面第一条的划定,那末第三条的主键又是甚么意义呢?很复杂,它只是在每一个纪录中到场一个独一的、主动增添的整型值。经由过程这个值,就能够将两个姓名一样的纪录辨别开来。经由过程使用第一级正轨化情势,我们失掉了以下的表格:
users
userIdnamecompanycompany_addressurl
1JoeABC1WorkLaneabc.com
1JoeABC1WorkLanexyz.com
2JillXYZ1JobStreetabc.com
2JillXYZ1JobStreetxyz.com
如今我们的表格能够说已处在第一级正轨化的情势了,它已办理了url字段的限定成绩,不外如许的处置后又带来了一个新的成绩。每次在user表中拔出一笔记录的时分,我们都必需反复一切的公司和用户数据。如许不但令数据库比之前年夜了,并且很简单堕落。因而还要经由第二级正轨化处置。
MySQL的低成本来自于其简单性吗?它的普及性是由于其低成本吗?其实,在MySQL的最“好”与最“不好”的功能之间没有明显的分界线,但它们组合在一起就形成了一副让我们欣赏的作品。 |
|