在没有 FK 的情况下保持参照完整性
Maintain referential integrity without FK
请提出一些在现有数据库中没有 FK 的情况下保持参照完整性的最佳方法。计划从某些表中删除 FK。我们如何保持参照完整性。
将外键作为数据库设计的一部分是一种很好的做法。总是利用 RDBMS 开箱即用的东西更好,而不是试图重新发明轮子。
外键除了维护数据库参照完整性外,还在执行查询时提供性能优势。 Read FK and performance benefits
如果你不想有外键,又想保证引用完整性,你可以考虑以下选项:
- 为所有插入创建存储过程。存储过程首先检查父项是否存在,然后再向子项插入记录。否则,它抛出异常
- 在父表、子表中创建 INSERT、UPDATE、DELETE 触发器并相应地处理参照完整性
- 如果您有 ETL 负载,您可以考虑在插入数据之前使用查找来处理参照完整性。错误行可以移动到单独的错误目标。
请提出一些在现有数据库中没有 FK 的情况下保持参照完整性的最佳方法。计划从某些表中删除 FK。我们如何保持参照完整性。
将外键作为数据库设计的一部分是一种很好的做法。总是利用 RDBMS 开箱即用的东西更好,而不是试图重新发明轮子。
外键除了维护数据库参照完整性外,还在执行查询时提供性能优势。 Read FK and performance benefits
如果你不想有外键,又想保证引用完整性,你可以考虑以下选项:
- 为所有插入创建存储过程。存储过程首先检查父项是否存在,然后再向子项插入记录。否则,它抛出异常
- 在父表、子表中创建 INSERT、UPDATE、DELETE 触发器并相应地处理参照完整性
- 如果您有 ETL 负载,您可以考虑在插入数据之前使用查找来处理参照完整性。错误行可以移动到单独的错误目标。