确保参照完整性的最佳方法

时间:2015-03-25 16:41:17

标签: sql sql-server referential-integrity

我是一个SQL菜鸟,虽然我知道可用的主要工具,但我没有足够的经验知道某些情况下的最佳工具。

作为一个例子,我目前有一组需要引用完整性的表。每个表本身都没有所有必要的列来限制数据,因此我至少有3个选项可供我使用。

  1. 创建将数据连接在一起的其他表/表 - 除了重复数据外,还会保留多个文件以保持同步。

  2. 创建一个触发器 - 不是太难,但是可靠的触发器是什么?它可以扩展吗?

  3. 创建一个函数 - 不是我以前做过的事情,但我遇到了一个示例,展示了它如何用于约束存储在多个表中的数据。

  4. 考虑到我要做的事情 - 通过加入数据来保持诚信,我应该考虑什么,以及所有3种方法都适合我尝试做的事情?

    这是一个使用桥表来链接缺失表的示例:

    enter image description here

1 个答案:

答案 0 :(得分:1)

使用外键是保证数据一致性的最佳(最快,最轻的脚步)方式。如果您希望国家表格保证只有有效的州拼写(以及您开展业务的状态)被添加到销售订单中(因此当您搜索所有销售到新泽西州时,您只需要搜索一个拼写)其他表格没有比使用FK更简单的方法了。