1

我该怎么做呢?可取吗?

我有一个名为“项目”的表,其中包含“名称”和“价格”列。

价格一直在变化,我想存储所有变化以便绘制图表。

我在想“价格”应该是一个数组?它是否正确?

谢谢

4

1 回答 1

2

我会使用一个单独的表格来跟踪价格历史。像这样简单的东西:

create_table :item_prices do |t|
    t.integer :item_id, :null => false
    t.decimal :price,   :null => false, :precision => 7, :scale => 2
    t.timestamps
end

请注意,price是 a decimal,而不是 a float。永远不要用浮点数来赚钱。

然后在 中Item,像这样:

class Item
    has_many :item_prices
    before_save :update_price_history, :if => :price_changed?
private
    def update_price_history
        self.item_prices.create!(:price => self.price)
    end
end

这样做的一个很好的优势是您可以跟踪价格何时发生变化以及价格本身,这可能会使您的图表看起来更合理一些。

于 2013-10-17T20:29:38.870 回答