如何实现版本化的ActiveRecord关联?

Chr*_*ell 5 activerecord ruby-on-rails associations

我想使用版本化的ActiveRecord关联.例如,我想找到另一个对象属于某个过去日期的对象,或者它之前属于它的对象.是否已经存在一个子类化Rails的ActiveRecord以提供版本化关系的库?还是其他一些提供可持久版本化关系的Ruby库?

Con*_*lls 1

在事务性应用程序中支持历史状态是大规模增加复杂性、降低数据库性能并使自己的生活变得困难的好方法。如果您只需要显示或报告历史状态并且不需要最新状态,请考虑构建具有II 型缓慢变化维度和定期更新它的过程的星型模式。

与构建通过代码库运行的系统临时历史记录跟踪的应用程序相比,这要简单得多。如果这种方法能够满足您对应用程序的要求,那么您最好这样做。这也意味着应用程序数据库将与系统附带的普通数据库访问机制很好地配合。

如果您需要相当频繁的刷新,您可以在数据库上实现更改数据捕获系统,如果应用程序只需要关心当前状态,那么这相对简单。使用 CDC 机制,加载过程只需根据更改进行更新,并且运行速度相对较快。