我有关系数据库MySQL。其要求是归档一些表的记录及其相关记录,以便从活动数据库中完全删除,并在需要时将其归档以供以后访问。web应用程序是在Rails BTW上构建的。
有没有一种方法,对原始数据库的任何插入或更新都会反映到存档数据库中,而对原始数据库的删除不会更新到存档数据库中。
这样,归档数据库就有了完整的活动数据和归档数据。原始数据库只有可实时访问的数据。
或者有什么不同的有效的解决方案。原因是,如果我们使用暴力破解方法,每当数据移动到归档数据库时,所有记录及其从属记录都需要识别并移动到归档数据库,然后删除原始数据库中的相应记录。
使用Rails框架,当dependent::destroy配置正确时,删除相关和依赖记录相对容易。
发布于 2020-06-11 21:19:20
有一种方法,在这种方法中,对原始数据库的任何插入或更新都会反映到归档数据库,而对原始数据库的删除不会更新到归档数据库。
反例"I"
会反映插入和更新,而不会反映删除。但邪恶的同事可能只是在删除记录之前将任何内容替换为虚拟内容,因此只保留记录之间的关系,但其他所有内容都将消失。这可能会使“无删除镜像方法”变得无用(除非您可以从链接图本身中推断出有价值的信息)。
如果存档数据库还具有原始数据库的所有技术属性,则这是反例"II"
假设有一个为某些列定义了唯一组的表: UNIQUE (姓名、姓氏、出生地、生日)
现在有人删除了无名氏,伦敦,2000-01-01。不过,影子表将保留此记录。
一周后,你注意到这是某个同事犯下的错误。您希望重新创建Jane,但是因为她的数据仍然存在于影子表中,所以这将被拒绝,事务也不会提交。
https://stackoverflow.com/questions/62323810
复制相似问题