0

嗨,我已经设置了两个非常基本的表。一个表将用作查找,以标识字段作为主键。另一个表使用查找 ID 作为外键。

我已经创建了一个关系约束,所以如果在“主”表中使用了外键,我现在无法从查找中删除。

但是我的问题是我可以使用不存在的外键添加记录。

根据我的想法,这不应该被允许,谁能告诉我我需要使用什么设置来强制执行此操作以及这是否是典型的数据库设计?

谢谢戴夫

4

1 回答 1

1

你的思路是对的。良好的数据库设计提供了某种方式来执行所谓的“引用完整性”。这只是您自己得出的概念的流行语。即,如果外键引用不存在的行,则应拒绝该外键。有关参照完整性的一般讨论,请参阅以下 Wikipedia 文章。它很短。

http://en.wikipedia.org/wiki/Referential_integrity

一些程序员希望在他们的程序中强制执行参照完整性。一般而言,在数据库中定义参照完整性约束并让 DBMS 执行是一个更好的计划。它更容易、更快、更有效。

SQL 数据定义语言 (DDL) 提供了一种在创建表时声明外键约束的方法。SQL 的不同方言之间的语法略有不同,但在所有方言中基本相同。这是一个胶囊摘要。

http://www.w3schools.com/sql/sql_foreignkey.asp

SQL Server 的文档应该有 CREATE TABLE 命令下的参照完整性约束的描述。

于 2012-12-06T12:28:00.313 回答