需要跟踪对数据库中的对象所做的更改。什么是一个很好的解决方案来存储对象的变化历史?
微不足道的实现是获取镜像表,通过触发器将数据插入到数据库中或应用程序内部,但影响性能和随着时间的推移镜像数据库变得巨大并且在原始表必须是改变(镜像表需要反映这种改变)。
因为我最大的要求是对数据库和应用程序性能的影响最小,所以我当前的首选是将更改转储到udp上的syslog-ng中,并将它们存储在纯文本文件中。
毕竟changelog不会被频繁访问,所以甚至可以随着时间的推移将其归档。但显然这样的设置实际访问数据是相当棘手的。
所以我想我的问题是 - 是否有一个系统,至少部分适应我的需求?完美的配合将是UDP访问的无模式附加数据库系统,可自动存档数据(或至少需要最少量的配置)或插入性能降低速度很慢。 MongoDB的? CouchDB的? YourDB?
保存为序列化对象或json的更改(增量更新)数组可能也可以在数组合并以查看当前合并的更改。 – 2012-02-06 17:42:10
是的,这就是我打算做的,问题是要使用什么存储,因此很容易维护它并对其进行时间片分割。 – keymone 2012-02-28 13:20:10
如果问题是存储,您可以将其存储在任何地方,包括文件,数据库中的字段或持久性缓存。这是你的电话。 – 2012-02-29 11:06:41