mysql - 归档理论

标签 mysql sql database archiving

我将要建立一个新的数据库,该数据库需要包括仍可访问的记录归档。记录都与某些项目相关联,当项目存档时,我希望记录保持不变,即快照。 (例如,如果联系人与存档项目相关联,并且他们在一年后搬家,我希望它仍然提取旧地址。)存档记录不需要更新,但它们确实需要可访问。

我知道如何解决这个问题,但我不确定这是否是最好的方法:复制每个表以“存档”所有内容,然后在将项目放入存档时,所有FK/PK 关系将被更新,尽管这似乎是一个繁琐的过程。

我的另一个想法是为每个项目(即联系人)分配一个 PK,然后每个项目都有一个辅助键,然后与每个项目相关联。这样做的主要问题是,如果联系人在实时项目上进行更新,这似乎很困难,因为需要进行大量更新。

如果您有任何问题,请告诉我。

谢谢你的帮助。

最佳答案

嗯...我唯一一次遇到这样的事情,有在应用层解决它的想法,而不是在数据库上。

例如,对于 ruby​​,您可以使用 vestal_versions 或 paper-trail。

例如,Paper-trail 将所有对象的版本存储为单个表中的序列化对象,并使用增量。

关于mysql - 归档理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8912812/

相关文章:

javascript - php Javascript 变量引用错误

php - 我真的应该使用 PDO 和准备好的语句吗?

sql - 如何提高 SQL Server 中日期时间过滤的性能?

mysql - MySQL中如果日期是X,如何避免插入数据?

php - 获取最后一小时插入的最后一项

php - Angular API 日期不工作 : timestamp from PHP backend needs to be refactored?

sql - 删除重复的 Oracle xmlagg 列表

objective-c - 自定义 iOS 通讯录。需要有关数据结构和性能的建议

sql - 使用 TSQL,我可以将 CHAR(1) 列递增 1 并在没有 CASE 语句的 LEFT OUTER JOIN 中使用它吗?

mysql - 如果我在没有在 MySQL 中定义外键的情况下对数据库进行建模会怎样?