我们正在使用类似于Amazon DynamoDB的定价模式开发Rails应用程序(即,灵活地提供您需要的内容)。为简单起见,假设您可以配置:
简单地说,您根据配置付费。我们的具体要求如下:
(乍一看这可能听起来不公平,但我们在这里分配了一些严肃的资源。)
我正在寻找一种方法来设计一个能够完成我们想要的数据模型而不会过多地使用它。
据我所见,我无法使用simple_audit或paper_trail等宝石。
它们存储在数据库中序列化的模型更改。这非常适合撤消和版本控制,但不适用于要求#1,因为您无法在日期范围内获得更改,然后找到MAX值(不会在Ruby中计算大部分内容)。
我可以想象以下自制解决方案:存储
等记录的数据库表(model, metric, value, time_of_change, user_who_made_the_change)
这使得:
成为可能此表格将在ActiveRecord(可推测的after_save
)回调中更新,即wrapped in the transaction around save
。
由于NIH Syndrome,我对自制解决方案感到担心,也许我对审计宝石的担忧完全没有根据。
或者,也许,我忽略了一个方面或整个其他解决方案。你觉得怎么样?