0

我目前在一个系统中工作,我们使用 MySQL 来存储我们所有的关系数据,但我们的审计日志被保存在 MongoDB 文档数据库中以进行长期存档。在“项目”(系统中最大的父实体)的情况下,我希望允许用户删除项目并强制级联删除有效地清理我的所有相关数据的数据库。(这就是它变得棘手的地方)

理想情况下,一旦删除,我的“项目”表中的单数记录将在删除过程中持续存在,被标记为“存档”项目,然后我的代码将知道如果用户尝试访问存档项目,我们将加载单个页面显示删除之前在项目生命周期内收集的所有 MongoDB 审计日志。

我想我可以通过选择项目记录、运行删除、重新插入数据并重新使用分配给项目的原始 AutoInc id 在事务中完成这项工作。关于这个感觉很脏,所以我想知道是否有人看到更好的方法来做到这一点。

理想情况下,如果有一种方法可以在不实际删除原始记录的情况下触发表的外键上的级联事件,我将拥有我需要的东西,但我还没有看到任何这样的野兽。

谢谢你的帮助!

4

1 回答 1

0

我过去使用的只是添加一个存档列并将其设为布尔值。因此,当用户“删除”某些内容时,它只会切换标志。显然,只有当您使用 php 之类的东西来处理请求并且不允许用户直接修改数据库时,才能做到这一点。需要更多关于您计划如何执行此操作的信息。

我会把这个放在评论中,但我认为我没有足够高的评价来评论其他问题。

于 2012-09-26T19:46:25.220 回答