sql是否删除相关记录?

sql是否删除相关记录?,sql,recovery,Sql,Recovery,删除记录的最佳做法是什么? 哪种选择最正确 比如说 有以下情况: 桌子 ----使用者---- 国际用户识别码 varchar名称 瓦查尔氏 波尔·韦恩 ---科目-- 国际主题号 瓦查尔头衔 波尔·韦恩 ---主题用户--- int subject\u to\u user\u id 国际用户识别码 国际主题号 波尔·韦恩 如果我想删除用户或主题,我需要删除关系-主题到用户吗 为什么我要问,因为在工作中,有时用户会删除一些信息,然后我们必须恢复这些数据。 目前我们删除了相关数据,但是恢复起

删除记录的最佳做法是什么? 哪种选择最正确

比如说

有以下情况:

桌子

----使用者----

国际用户识别码

varchar名称

瓦查尔氏

波尔·韦恩


---科目--

国际主题号

瓦查尔头衔

波尔·韦恩


---主题用户---

int subject\u to\u user\u id

国际用户识别码

国际主题号

波尔·韦恩


如果我想删除用户或主题,我需要删除关系-主题到用户吗

为什么我要问,因为在工作中,有时用户会删除一些信息,然后我们必须恢复这些数据。 目前我们删除了相关数据,但是恢复起来非常困难

所以我想问的是删除的最佳实践是什么? 哪种选择最正确

我认为删除相关数据是正确的,但这取决于具体情况


“删除”是指将“删除”标记为“真/假”

最佳做法是不删除任何内容。只需将项目标记为已删除


添加“IsDeleted”列,并在大多数查询中添加“WHERE IsDeleted=False”

最佳做法是不删除任何内容。只需将项目标记为已删除


添加“IsDeleted”列,并在大多数查询中添加“WHERE IsDeleted=False”

subject\u to\u user中的相关数据是如何关联的?有身份证的

如果您从user和subject中删除,但不从subject\u-to\u-user中删除,那么是什么告诉您您不会创建一个ID已在subject\u-to\u-user中的新用户


其想法是删除所有相关数据。如果需要恢复,则始终可以有另一组表,称为“已删除的用户”、“已删除的主题”和“已删除的主题”到“用户”。从主表中删除时,请移到前面的表。

subject\u to\u user中的相关数据是如何关联的?有身份证的

如果您从user和subject中删除,但不从subject\u-to\u-user中删除,那么是什么告诉您您不会创建一个ID已在subject\u-to\u-user中的新用户

其想法是删除所有相关数据。如果需要恢复,则始终可以有另一组表,称为“已删除的用户”、“已删除的主题”和“已删除的主题”到“用户”。当您从主表中删除时,请转到前面的表。

Udi Dahan(我毫不惭愧地受到他的影响)就这个主题写了一篇精彩的博客文章。你可以阅读它,但总结是为了反映现实生活中发生的事情

例如,在现实世界中,一个订单被“取消”、“退回”,但从未真正删除过——上下文非常重要。

Udi Dahan(我毫不羞愧地受到他的影响)就这个话题写了一篇优秀的博客文章。你可以阅读它,但总结是为了反映现实生活中发生的事情


例如,在现实世界中,订单是“取消”、“退回”的,但从未真正删除过——上下文非常重要。

当然,在这里删除,我的意思是,标记为“已删除”;所以问题是一样的,我是否需要将相关数据标记为已删除?特别是如果您当前正在进行大量数据恢复。这取决于数据库的结构-如果您希望所有相关数据标记为已删除或未删除…我也喜欢这样。这样,即使删除了主键,主键仍保持“唯一”。没有重复使用的数字。当然,我的意思是删除,标记-删除\u yn;所以问题是一样的,我是否需要将相关数据标记为已删除?特别是如果您当前正在进行大量数据恢复。这取决于数据库的结构-如果您希望所有相关数据标记为已删除或未删除…我也喜欢这样。这样,即使删除了主键,主键仍保持“唯一”。没有重复使用的数字。想法:按前缀删除将数据移动到表中有一定意义,我会记住这一点,然后尝试以下方法:)您只需要两次表。如果采用这种方法,您还可以添加一个已删除的字段,以便更容易按日期/时间恢复。想法:按前缀删除将数据移动到表中有一定意义,我会记住这一点并尝试以下方法:)您只需要两倍的表。如果您采用这种方法,您还可以添加一个已删除的字段,以便于按日期/时间进行恢复。