我将要建立一个新的数据库,该数据库需要包括仍可访问的记录归档。记录都与某些项目相关联,当项目存档时,我希望记录保持不变,即快照。 (例如,如果联系人与存档项目相关联,并且他们在一年后搬家,我希望它仍然提取旧地址。)存档记录不需要更新,但它们确实需要可访问。
我知道如何解决这个问题,但我不确定这是否是最好的方法:复制每个表以“存档”所有内容,然后在将项目放入存档时,所有FK/PK 关系将被更新,尽管这似乎是一个繁琐的过程。
我的另一个想法是为每个项目(即联系人)分配一个 PK,然后每个项目都有一个辅助键,然后与每个项目相关联。这样做的主要问题是,如果联系人在实时项目上进行更新,这似乎很困难,因为需要进行大量更新。
如果您有任何问题,请告诉我。
谢谢你的帮助。
最佳答案
嗯...我唯一一次遇到这样的事情,有在应用层解决它的想法,而不是在数据库上。
例如,对于 ruby,您可以使用 vestal_versions 或 paper-trail。
例如,Paper-trail 将所有对象的版本存储为单个表中的序列化对象,并使用增量。
关于mysql - 归档理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912812/