SQL - 如何删除关系多、使用次数多的主数据

SQL - How to Delete master data with many relation and used in many time

删除系统中经常使用的列的最佳做法是什么(我首先使用 SQL 服务器和 EF6 代码)

例如:

我有一个table来存储部门信息。在某些业务中,他们在许多业务中使用了很多这种部门信息,并且也有一些存储过程使用它。在某些情况下,这个部门将被删除,但我不确定什么是最好的方法。

在我看来,我有 2 个解决方案:

解决方案 #1:

添加一个名为IsDeleted的列并设置它true/false,但它不会与现有的存储过程一起生效。

解决方案 #2:

添加一个名为table的Recycle,我会存储被删除的对象的Id和类型。并创建一个视图以在系统上调用它。

还有其他解决方案吗?非常感谢任何帮助。

在我看来,在你的情况下最好的做法是使用软删除的想法,成本更低,这里有一些链接,我希望它能帮助你

  1. Soft delete with Entity Framework
  2. Entity Framework: Soft Deletes Are Easy
  3. Soft Delete pattern for Entity Framework Code First