至于最佳实践,“避免像瘟疫这样的触发器”是我能给你的最佳建议。
我在类似情况下所做的是添加一个列,表明现在存档了一行。我用了一个 datetime 专栏叫 ArchivedDt 。普通查询将此列排除在外:
datetime
ArchivedDt
where ArchivedDt is null
您甚至可以在视图中执行此操作。分层数据仍然存在,并且可以轻松撤消特定的存档运行。