SQL Server中的父表和子表(一)

日期: 2008-11-17 作者:SearchSQLServer.com翻译:April 来源:TechTarget中国 英文

我们在第二章中讨论过父型和子型。这些实体有多种真实的模块。例如,我们也许有一个父型电话、附带有一些有线或无线的子型电话。我们将这些对象区分开放进一个子型集群里。

因为即使都是电话,不同的类型都需要我们归为不同的属性。例如,一部无线电话,我们就需要知道听筒能够在多大的范围内接听以及接电话的频率。对于一部有线电话,你就要看看线的长度。这些区别都属于子型,这些电话之间的共同点包含在父型特征之内。

  如何在SQL Server中实施子型集群?你有三种选择。首先就是创建一个单独的表表示父型特征并包含所有子型特征。第二种选择就是给每个子型创建表,给每个子表增加父型特征。第三,你可以同时创建父表和子表,和逻……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

我们在第二章中讨论过父型和子型。这些实体有多种真实的模块。例如,我们也许有一个父型电话、附带有一些有线或无线的子型电话。我们将这些对象区分开放进一个子型集群里。因为即使都是电话,不同的类型都需要我们归为不同的属性。例如,一部无线电话,我们就需要知道听筒能够在多大的范围内接听以及接电话的频率。对于一部有线电话,你就要看看线的长度。这些区别都属于子型,这些电话之间的共同点包含在父型特征之内。

  如何在SQL Server中实施子型集群?你有三种选择。首先就是创建一个单独的表表示父型特征并包含所有子型特征。第二种选择就是给每个子型创建表,给每个子表增加父型特征。第三,你可以同时创建父表和子表,和逻辑建模的方式一样更加有效地实现子型集群。

  要判断哪种方法正确,你就必须看清楚保存的这些数据。我们会仔细考虑这三种选择中的每一种,并考虑到你使用他们的原因以及每种选择的优点和缺点。

  父表

  当子表中没有包含或者和父表中的数据没有区别的时候,不可以用采用这一选项。例如,一个保存了员工数据的集群。在建模时,你会发现同时也付给了小时工工资。所以你就要决定用子表和父表进行区别。在仔细考虑所有的要求之后,你决定这两种类型之间的真正的区别就是:你要保存每个公司付给工资的员工的年工资;你还要保存小时工的工资以及小时工上班时间的长短。

  在这个例子中,子表之间的区别很小,所以你可以用子表创建子型集群。在这种情况下,你可以创建一个单独的、包括所有员工类型的表,它还包含子表的三种所有的特征,即工资、小时工资以及上班时间。无论你何时插入一个小时工,你就需要把这个数据添加到每小时费用和上班时间(小时)这两列中。那么工资这一列就会变成NULL。而对于有薪水的员工,你要做的事情刚好和它相反

  用上面这种方法创建这种图表类型会让你很轻松就找到员工数据,因为所有这些数据都在同一个地方。唯一的缺点就是你必须实现员工类型和他适当的列之间的逻辑性。只有在子型实体其他的特征很少的时候,父表的实施才能行之有效。如果它们之间有很大的区别,那你就可以设定指定行的列为NULL,这样它就会用一种较好的方式将数据汇集在一起。

  子表

  子表中包含的数据和一般的数据不一样,这主要是因为子表很小,你很有可能安装子表本身。这实际上是一种相反的数据布局,它会提示你只能用父型模式。

  即如你现在在为相机零售店创建一个表。你可以为这个店里销售的产品建一个子集群,因为每个产品都属于不同的类型。你需要保存每种产品的产品型号,物料编号和产品的实用性,也些也就是它们相似的地方。对于相机来说,你还需要知道它最快的快门速度、每秒帧数、反光镜大小、电池型号、距离物体的最近距离和最小光圈。并且三脚架也有一些数据,你需要保存最小和最大的高度、在哪个平面上可以安装枢轴、镜头类型。每个购买了相机的人知道这里我列出的这些区别还仅仅是表面上的。你需要了解每种类型的一些其他特征来准确介绍所有选项。

  所有的这些属性对每种子型来说都是唯一的,它们之间也只有很少的共同点,这样就造成你只能实施子表。你在做这些时,每个子表都会自己存储共同的数据。也就是说,相机、镜头和三脚架表有相应的列保存模式数据、SKU型号和实用性。你用这种方法查询实施的数据,就需要支持你查询你要找的这种产品的合适的表。

翻译

April
April

相关推荐