软件测试开发技术之正确的数据库设计确保数据的完整性[2]

发表于:2009-09-10来源:作者:点击数: 标签:软件测试开发数据库设计技术
软件测试 开发 技术之正确的数据库设计确保数据的完整性[2] 数据库设计 关键字:数据库设计 完整性 启用级联选项 强制了引用完整性后,如果必须更改或删除一个主键值,就可能遇到麻烦。为此,你可以在更改时暂时禁用引用完整性,或者启用一个级联选项(并非所

 

 软件测试开发技术之正确的数据库设计确保数据的完整性[2]   数据库设计

关键字:数据库设计 完整性

启用级联选项

  强制了引用完整性后,如果必须更改或删除一个主键值,就可能遇到麻烦。为此,你可以在更改时暂时禁用引用完整性,或者启用一个级联选项(并非所有系统都支持级联选项,请查阅文档以确认)。

  级联更新

  启用一个级联更新选项后,就可在存在相匹配的外键值的前提下更改一个主键值。系统会相应地更新所有匹配的外键值。下面来看看Microsoft Aclearcase/" target="_blank" >ccess中的一个例子。如图D所示,打开Books和Publishers表之间的级联选项(参阅系统文档了解如何启用该选项)。

  

  图D 启用级联更新选项

  接着打开Publishers表,试验将Apress变成RabbitPress。这一次,系统将接受更改,而不是像图C那样报错。但是,幕后会发生很多事情。打开Books表并检查PublisherFK值。如图E所示,系统在接受RabbitPress后,将所有匹配的外键值从Apress变成了RabbitPress。这样一来,更改主键值时就不会产生“孤儿”。

  

  图E 级联更新选项更改了所有匹配的外键值

  如果系统不允许编辑“自动编号”数据类型,但一个主键要基于这样的一个字段,那么级联更新是没有用的。当然,由于不能更改主键值,所以也不会产生冲突。

  

原文转自:http://www.ltesting.net