【发布时间】:2020-08-18 05:23:41
【问题描述】:
请建议一些在现有数据库中不使用 FK 的情况下保持参照完整性的最佳方法。计划从某些表中删除 FK。我们如何保持参照完整性。
【问题讨论】:
-
这听起来很糟糕。为什么要这么做?使用外键是 DBMS 保证参照完整性的方式。没有它们,如果 DBMS 允许,您必须自己构建此逻辑。 也许可以在触发器中查找父表的插入和更新,并在该表中不存在新值时抛出异常。我不太了解 SQL Server,无法说出这是否可能。
-
实现参照完整性一般有两种方法:外键和触发器。所以是的,FK 不是唯一的方法,但它绝对是最便宜和最快的方法。决定删除它们的原因是什么?跟现实有关系吗?
-
您要删除 FK 的原因是什么?也许这对于理解问题也很重要。
标签: sql sql-server database-administration