在设定的时间间隔内对表格进行版本控制的“轨道方式”是什么?

我有一个看起来像这样的模型:

class WidgetStack < ApplicationRecord
  belongs_to :widget
  belongs_to :person

  validates :quantity,numericality: { greater_than_or_equal_to: 0,only_integer: true }
end

所有表都由这两个外键和quantity bigint组成。 quantity只能增加,并且每天可能更改数千次。

我想每小时记录一次widget_stacks表的状态,以便可以报告过去一个小时中每个WidgetStack数量的变化,日,周,月等

我的意愿是制作一个WidgetStacksHistory模型和表格,然后使用whenever宝石每小时createWidgetStackHistory记录一次WidgetStack条记录。

我还找到了paper_trail宝石,该宝石可以进行模型版本控制,但我认为这不适合我,因为WidgetStack的{​​{1}}经常更改,因此我需要记录每小时每小时quantity同时进行一次。 WidgetStack将会很多,我不需要/不想记录每一个更改。此外,由于我每小时需要每小时精确的WidgetStacks,因此,如果我使用paper_trail,则必须记录每个更改,以确保每小时都有最新数据。

像这样对表进行定期快照的“跟踪方式”是什么?我的quantity + whenever解决方案是否可行?

更新,其中包含更多信息:

要澄清有关数据的信息:捕获数据时,它需要完全包含每个WidgetStacksHistory,因此需要三个bigint(两个外键加WidgetStack)和quantity时间戳记每个created_at。可能会有成千上万个WidgetStack。我需要存储至少最后一天的每小时粒度,最后一个月的每天粒度以及无限期的每月粒度的数据。

iCMS 回答:在设定的时间间隔内对表格进行版本控制的“轨道方式”是什么?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1897714.html

大家都在问