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

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

父表和子表   你可能会想:如果有一些共同的属性并且子表之间有很大的不同,你就需要同时安装父表和子表。这里有一个很好的例子:子型集群存储的是客户的支付信息。不论你的客户的支付形式是电子支票、信用卡、礼券还是现金,你都需要知道一些其他的信息。任何一种支付形式你都要知道:支付的人是谁、什么时候收到的款、数量以及支付状态。

但是这些支付形式中每一种都要求你去了解支付的一些细节。如信用卡,你就要知道卡号、卡的类型、安全密码以及有效期。如果是电子支票,你就需要知道银行帐号、流水号、支票号码,或者是司机的执照号码。礼券就很简单了,你只需要知道卡号和余额。

如果是现金,你就不需要保存其他的数据。   以上这种需……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

父表和子表

  你可能会想:如果有一些共同的属性并且子表之间有很大的不同,你就需要同时安装父表和子表。这里有一个很好的例子:子型集群存储的是客户的支付信息。不论你的客户的支付形式是电子支票、信用卡、礼券还是现金,你都需要知道一些其他的信息。任何一种支付形式你都要知道:支付的人是谁、什么时候收到的款、数量以及支付状态。但是这些支付形式中每一种都要求你去了解支付的一些细节。如信用卡,你就要知道卡号、卡的类型、安全密码以及有效期。如果是电子支票,你就需要知道银行帐号、流水号、支票号码,或者是司机的执照号码。礼券就很简单了,你只需要知道卡号和余额。如果是现金,你就不需要保存其他的数据。

  以上这种需要同时安装父表和子表,Payment表可能包括很多的细节、单个的信用卡、礼券,支票表会包含每种支付形式相应的信息。我们没有创建现金表,因为我们不需要保存Payment表之外的其他现金支付信息。

  用这种方法安装子型集群,你还要保存子表之间的区别,通常一个较短的密码在父表中存储成一个列指定适当的子表。我们建议你尽可能使用单个字符,因为它们很小并且还给人们提供了比数字提供的更多的内容。在这个例子中,你可将信用卡保存为CC,将礼券保存为G、E为电子支票、C为现金(注意我们用CC来保存信用卡来区别现金)。在查询支付信息时,你可以加上基于这样一种鉴别工具的恰当的支付类型。

  如果你只需要从父表和子表中查找数据,这种方法有两大优势:你只需要查找一个表,你也不需要检索其他数据。但是,另一方面就是如果你同时要从子表和父表中查找数据,你就必须判断你要哪个子表,然后将这连个表连接起来。另外,你可能会发现你还需要父表和多个子表的信息,这将增加你的查询量,因为你要将多个表连接起来。

  子表和父表:最后一件事

  安装子表和父表方法有时可以灵活。如果你要花大量的时间来了解数据、了解将数据拆分进多个表中而不是将它们捆绑得更紧的意义,你就应该能决定最佳解决方案。不要害怕产生一些测试数据、通过性能测试运行多种选择方式来确保你做出正确的选择。我们在建立物理模式时会用到子型集群和适和其他复杂情况的选项。

  总结

  在本章中,我们谈到了SQL Server中一些可用的对象,你可以用它们来安装你的物理模式。了解这些对象在很多方面都很重要。你当你在设计你的逻辑模式时必须记住这一点,这样你才能牢记SQL Server。这一点在你之后建立和安装物理模式时也会起到重要的作用。可能不会对你建立的每个数据库用SQL Server中的每一个对象,但是你要清楚你的选择。我们会在以后向大家介绍如何创建物理模型,在那个时候我们会介绍你如何用这些物理模型解决问题的方法。

  在下一章中,我们会谈到 标准化(normalization),那时我们会通过例题方案、挖掘真实事例介绍本书最基本的部分。

翻译

April
April

相关推荐