仓酷云

标题: PHP网页设计数据库设计技能(三) [打印本页]

作者: 分手快乐    时间: 2015-2-4 00:18
标题: PHP网页设计数据库设计技能(三)
让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。技能|设计|数据|数据库|数据库设计   作者:allsky

  在界说第四个正轨化的模式前,我想起首提一下三种根基的数据关系:一对一,一对多和多对多。咱们回头看一下经
过第一个正轨化的users表。如果咱们将url的字段放在一个自力的表中,每次在users表中拔出一个纪录,咱们就会在urls
表中拔出一行。咱们将失掉一个一对一的关系:用户表中的每行,都将在urls表中找到响应的一行。关于咱们的使用来
说,这既不适用也不尺度。

  然后看看第二个正轨化的例子。关于每一个用户纪录,咱们的表格答应有多个urls的纪录与之联系关系。这是一个一对多的
关系,这是一个很罕见的关系。

  关于多对多的关系来讲,就有点庞杂了。在咱们的第三个正轨化模式的例子中,咱们的一个用户与良多的url有关,而
咱们想将该布局变成答应多个用户与多个的urls有关,如许咱们就能够失掉一个多对多的布局。在会商前,咱们先看看表
格布局会有些甚么变更

  users

  userId name relCompId

  1 Joe 1

  2 Jill 2

  companies

  compId company company_address

  1 ABC 1 Work Lane

  2 XYZ 1 Job Street

  urls

  urlId url

  1 abc.com

  2 xyz.com

  url_relations

  relationId relatedUrlId relatedUserId

  1 1 1

  2 1 2

  3 2 1

  4 2 2

  为了进一步减低数据的冗余,咱们应用第四级正轨化模式。咱们创立了一个颇奇异的url_relations表,外面的字段均
为主键或foreign key。经由过程这个表,咱们就能够消弭urls表中的反复项目。以下是第四个正轨化模式的详细请求:

  第四个正轨化模式

  1.在一个多对多的关系中,自力的实体不克不及寄存在统一个表格中

  因为它仅使用于多对多的关系,因而大多半的开辟者可以疏忽这条划定。不外在某些情形下,它长短常适用的,这个
例子就是如许,咱们经由过程将不异的实体分别出来,而且将关系移到它们本人的表格中,从而改善了urls表格。

  为了令你更轻易分明,咱们举个详细的例子,以下将用一个SQL语句选择出一切属于joe的urls:

  SELECT name, url FROM users, urls, url_relationsswheresurl_relations.relatedUserId = 1 AND
users.userId = 1 AND urls.urlId = url_relations.relatedUrlId

  假如咱们想要遍历每一个人的团体信息和url信息,咱们可以如许做:

  SELECT name, url FROM users, urls, url_relationsswheresusers.userId = url_relations.relatedUserId AND
urls.urlId = url_relations.relatedUrlId

  第五级正轨化模式

  还有一级正轨化的模式,它其实不罕见,有点深邃,而且在大局部的情形下都是不用要的。它的准绳是:

  1.本来的表格必需可以经由过程由它分别出去的表格从头构建

  利用这个划定的优点是,你可以确保不会在分别的表格中引入过剩的列,一切你创立的表格布局都与它们的实践需求
一样大。使用这条划定是一个好习气,不外除非你要处置一个十分大型的数据,不然你将不需求用到它。

  但愿这篇文章对你有效,而且可以匡助你在一切的项目中使用这些正轨化的划定。你能够想晓得这些办法是从哪来
的,我可以告知你,后面三个正轨化的划定是1972年,Dr. E.F. Codd在他的论文“进一步正轨化数据库的关系模子中”提
出的,其他的划定是经由后来的纠合实际和关系数学家实际化的。评论:正所谓物级必反,将表格分得细致有时其实不好,
由于如许需求将各表停止各类的联系关系,这会令查询时变得庞杂,并且效力也能够下降,这些正轨化的划定可以参考,在实
际使用时,要依据项目标巨细,需要时可以停止一些测试,以设计出更公道的表格布局。

  学习如何将PHP与HTML结合起来完成简单动态页面
作者: 谁可相欹    时间: 2015-2-4 11:08
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 莫相离    时间: 2015-2-5 04:46
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 变相怪杰    时间: 2015-2-6 01:46
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 简单生活    时间: 2015-2-8 20:54
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 乐观    时间: 2015-2-23 11:37
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 海妖    时间: 2015-3-7 07:44
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 小妖女    时间: 2015-3-9 22:09
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 愤怒的大鸟    时间: 2015-3-17 02:09
兴趣是最好的老师,百度是最好的词典。
作者: 若天明    时间: 2015-3-17 11:10
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 精灵巫婆    时间: 2015-3-22 20:53
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 兰色精灵    时间: 2015-3-29 15:05
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 仓酷云    时间: 2015-4-11 22:29
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 蒙在股里    时间: 2015-4-13 00:46
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 因胸联盟    时间: 2015-4-16 14:08
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
作者: 再见西城    时间: 2015-4-21 06:36
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 灵魂腐蚀    时间: 2015-4-28 21:24
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: admin    时间: 2015-4-29 22:26
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 飘飘悠悠    时间: 2015-5-1 16:12
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 第二个灵魂    时间: 2015-6-13 01:38
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2