どうすればこれを行うことができますか?それはお勧めですか?
「名前」と「価格」の列を持つ「アイテム」というテーブルがあります。
価格は常に変化するので、グラフ化できるようにすべての変化を保存したいと考えています。
「価格」は配列であるべきだと思っていましたか?これは正しいです?
ありがとう
どうすればこれを行うことができますか?それはお勧めですか?
「名前」と「価格」の列を持つ「アイテム」というテーブルがあります。
価格は常に変化するので、グラフ化できるようにすべての変化を保存したいと考えています。
「価格」は配列であるべきだと思っていましたか?これは正しいです?
ありがとう
別のテーブルを使用して、価格履歴を追跡します。このような単純なもの:
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
はdecimal
ではなく であることに注意してください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
これの優れた利点は、価格自体だけでなく、いつ価格が変更されたかを追跡できることです。これにより、グラフがもう少し賢明に見えるかもしれません。