?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

打长沙麻将必胜绝技:贝斯特官网最奢华游戏:数据库设计四五范式

?

长沙转转麻将必胜口诀 www.fv7j.com.cn 在定义第四个正规化的形式前,我想首先提一下三种基础的数据关系:一对一,一对多和多对多。我们转头看一下颠末第一个正规化的users 表。如果我们将url 的字段放在一个自力的表中,每次在users 表中插入一个记录,我们就会在urls 表中插入一行。我们将获得一个一对一的关系:用户表中的每一行,都将在urls 表中找到响应的一行。对付我们的利用来说,这既不实用也不标准。

然后看看第二个正规化的例子。对付贝斯特官网最奢华游戏每个用户记录,我们的表格容许有多个urls 的记录与之关联。这是一个一对多的关系,这是一个很常见的关系。

对付多对多的关系来说,就有点繁杂了。在我们的第三个正规化形式的例子中,我们的一个用户与很多的url 有关贝斯特官网最奢华游戏,而我们想将该布局变为允许多个用户与多个的贝斯特官网最奢华游戏urls 有关,这样我们就可以获得一个多对多的布局。在评论争论前,我们先看看表格布局会有些什么变更

users

userIdnamerelCompId

1Joe1

2Jill2

companies

compIdcompanycompany_address

1ABC1 Work Lane

2XYZ1 Job Street

urls

urlIdurl

1abc.com

2xyz.com

url_relations

relationIdrelatedUrlIdrelatedUserId

111

212

321

422

为了进一步减低数据的冗余,我们运用第四级正规化形式。我们创建了一个颇稀罕的url_relations 表,里面的字段均为主键或者foreign key 。经由过程这个表,我们就可以打消urls 表中的重复项目。以下是第四个正规化形式的详细要求:

第四个正规化形式

1. 在一个多对多的关系中,自力的实体不能寄放在同一个表格中

因为它仅利用于多对多的关系,是以大年夜多半的开拓者可以轻忽这条规定。不过在某些环境下,它是异常实用的,这个例子便是这样,我们经由过程将相同的实体分离出来,并且将关系移到它们自己的表格中,从而改进了urls 表格。贝斯特官网最奢华游戏

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

SELECT name, url

FROM users, urls, url_relations

Where url_relations.relatedUserId = 1 AND users.userId 贝斯特官网最奢华游戏= 1 AND urls.urlId = url_relations.relatedUrlId

假如我们想要遍历每小我的小我信息和url 信息,我们可以这样做:

SELECT name, url

FROM users, urls, url_relations

Where users.userId = url_relations.relatedUserId AND urls.urlId = url_relations.relatedUrlId

第五级正规化形式

还有一级正规化的形式,它并不常见,有点深奥,并且在大年夜部分的环境下都是不需要的。它的原则是:

1. 原本的表格必须可以经由过程由它分离出去的表格从新构建

应用这个规定的好处是,你可以确保不会在分离的表格中引入多余的列,所有你创建的表格布局都与它们的实际必要一样大年夜。利用这条规定是一个好习气,不过除非你要处置惩罚一个异常大年夜型的数据,否则你将不必要用到它。

盼望这篇文章对你有用,并且可以赞助你在所有的项目中利用这些正规化的规定。你可能想知道这些措施是从哪来的,我可以奉告你,前面三个正规化的规定是1972 年,Dr. E.F. Codd 在他的论文“进一步正规化数据库的关系模型中”提出的,另外的规定是颠末后来的聚拢理论和关系数学家理论化的。

评论:正所谓物级必反,将表格分得过细无意偶尔并不好,由于这样必要将各表进行各类的关联,这会令查询时变得繁杂,而且效率也可能低落,这些正规化的规定可以参考,在实际利用时,要根据项目的大年夜小,需要时可以进行一些测试,以设计出更合理的表格布局。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: