收藏本站 
广告服务 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章数据库开发MS-SQL
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |
在数据库中用子类型设计关系表
[ 作者:佚名    转贴自:网络转载    阅读次数:43    更新时间:2007-9-2 11:52:00   录入:刘光勇 ]        
    理论上,在设计过程中揭示的每一个实体都会产生一个表。如果应用程序处理员工,就会建立一个员工表;如果那些员工中有经理,就会有一个经理表。

但实际上,如果两个实体十分相似,用单独一个表来处理它们会更有效率。员工与经理成为一个扩充员工表的“子类型”。

你必须决定如何处理子类型之间的差异。如果不同的子类型需要相同的数据,只是解释不同的话,你可以对所有子类型使用同一些列。另一个方法就是建立专门针对子类型的列。每种方法各有其优缺点。

对列进行再利用时,需要在表中增加另一列来指明特定行中的子类型。这对于解释超载列中的数据十分重要。

使用单独的列时,就不需要增加这样的指示列。对任何列进行针对某一子类型的 IS NULL 测试就可决定行是否属于那个子类型。结果为数值表明它属于那个子类型,结果为零值则说明它属于其它的子类型。

你还可以在一个表中模拟两个以上的子类型,但上面提到的原则同样适用于这些情形。根据数据的不同,你也可以结合使用这两种方法。

假设我们希望在同一个表中处理员工和经理。除两个实体间的公共列以外,员工有小时工资,而经理有年薪。另外,经理有一个指定的停车位号码( 1 到 50 之间),而员工只有普通的停车通行号(多达 9999 )。 列表 A 中是一个新建表( CREATE TABEL )语句,其中两个子类型使用相同的两列; 列表 B 是使用单独列的新建表( CREATE TABEL )语句。

注意,在列表 A 中,可以使用非零限制来防止数据丢失,但在列表 B 中则不行。还要注意,列表 A 中的 CHECK 限制必须应用于表级别,因为它们参考一个以上的列。列表 B 的 CHECK 限制可应用于列级别,因为它们只处理当前列的内容。它们也更加简单,但数量更多。

文章首页【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“在数据库中用子类型设计关系表”版权归文章所有者,转载请注明出处!
 ·上一篇文章:使用命名管道来访问SQL Server详解      ·下一篇文章:轻松理解数据库滞后联编和对象嵌套
相关文章
·在数据库中用子类型设计关系表[43]
·如何在数据库中进行更改表格[100]
·在数据库中用子类型设计关系表[45]
·在数据字典中直接修改表列的名称和顺序[81]
·在数据库中增添“魔术”来识别文件[6]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号