【发布时间】:2019-05-14 21:11:30
【问题描述】:
我正在尝试在 SQL Server 数据库中进行软删除,我有以下简单的关系:
博客表:
PK BlogId, Name, Deleted
张贴表:
PK PostId, FK BlogId, Title, Deleted
Post 表有一个带有约束的外键,它确保每个帖子都有一个现有的博客,并且当您删除博客时,您应该删除所有相关的帖子。
但是,如何在考虑软删除的情况下建立 FK 约束,所以当我将博客记录设置为已删除时,它会强制我将所有相关帖子也标记为已删除。
更新:我发现临时表非常有用的功能可以替代软删除,因为它跟踪包括记录删除在内的整个更改历史记录。(但仍然对以某种方式进行软删除感兴趣问题)
【问题讨论】:
-
您不能为此使用 FK 约束。您必须在删除逻辑(希望是存储过程)中处理这个问题,或者创建触发器来处理它。
标签: sql-server foreign-keys constraints