首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用软删除,应该删除外键吗?

如果使用软删除,应该删除外键吗?
EN

Database Administration用户
提问于 2014-08-06 17:55:17
回答 2查看 3.1K关注 0票数 4

在我的应用程序中,"ON“场景从未发生过。由于使用了软删除,"ON DELETE“级联和限制场景现在也不会发生。那么,当应用程序处于高并发工作负载下时,我是否应该丢弃外键,因为我遇到了死锁问题。

顺便说一句:如果子资源在创建子资源时有引用(外键),我的应用程序也会验证父资源的存在。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2014-08-06 21:22:54

留着吧。外键的存在主要是为了确保子表中的值确实存在于父表(外键)中。级联删除或更新通常是一个遥远的秒。

这是一般情况;您的具体业务规则可能有所不同。

票数 6
EN

Database Administration用户

发布于 2014-08-06 19:12:54

我有一个旧的帖子数据库同步和软删除场景中的墓碑表和已删除标志。在那篇文章中,我没有在我的例子中使用外键约束。

软删除要快得多。只需在WHERE子句中集成墓碑表或AND deleted=0的联接即可。

根据这些情况,如果外键引用确实会导致死锁问题,并且在应用程序级别执行约束检查,则可能没有外键引用。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/73340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档