所以,我有一个跟踪员工的Rails应用程序。我们想跟踪一段时间内的就业历史。我们希望能够进行以下类型的查询:
我们不介意历史查询明显较慢,甚至可能慢2个数量级。
此历史记录与审计跟踪不同 - 审计跟踪是数据的历史记录,因此审计跟踪将告诉您“在日期Y为员工X存储的工资”,但它不会让您更正那些旧数据是否错误。
[我们也使用审计跟踪进行审计,但我认为审计跟踪的逻辑提供了几乎正交的设计要求。]
是否有一种已知的数据库设计模式可以最好地实现此类历史记录?或者我可以在哪里找到各种“明显”设计和权衡的讨论?任何Rails插件?
使用Ruby 1.8.7的Rails 2.3.5,如果重要的话。
答案 0 :(得分:1)
我没有使用它,但paper_trail声称支持这种类型的版本管理。它似乎很容易处理您的要求(1)和(2) - 不确定(3),您可能需要做一些繁重的工作来获得同时搜索模型和版本的查询。
此历史记录与审计跟踪不同
意味着您需要能够对旧版本进行更改 - 我怀疑是否支持,如果您还需要将其作为审计跟踪,则实施起来似乎有问题。