软件测试开发技术之正确的数据库设计确保数据的完整性[2] 数据库设计
关键字:数据库设计 完整性
启用级联选项
强制了引用完整性后,如果必须更改或删除一个主键值,就可能遇到麻烦。为此,你可以在更改时暂时禁用引用完整性,或者启用一个级联选项(并非所有系统都支持级联选项,请查阅文档以确认)。
级联更新
启用一个级联更新选项后,就可在存在相匹配的外键值的前提下更改一个主键值。系统会相应地更新所有匹配的外键值。下面来看看Microsoft Aclearcase/" target="_blank" >ccess中的一个例子。如图D所示,打开Books和Publishers表之间的级联选项(参阅系统文档了解如何启用该选项)。
图D 启用级联更新选项
接着打开Publishers表,试验将Apress变成RabbitPress。这一次,系统将接受更改,而不是像图C那样报错。但是,幕后会发生很多事情。打开Books表并检查PublisherFK值。如图E所示,系统在接受RabbitPress后,将所有匹配的外键值从Apress变成了RabbitPress。这样一来,更改主键值时就不会产生“孤儿”。
图E 级联更新选项更改了所有匹配的外键值
如果系统不允许编辑“自动编号”数据类型,但一个主键要基于这样的一个字段,那么级联更新是没有用的。当然,由于不能更改主键值,所以也不会产生冲突。