0

Products と Recommendations の 2 つのテーブルがあります。両方のテーブルの最初の 200 万レコードには同じデータが含まれており、その後約 10 万レコードが異なります。基本的に、テーブルには製品 ID が含まれており、API を呼び出して各製品/推奨属性 (タイトル、価格など) を更新するスクリプトを作成する必要があります。製品モデルの属性を更新するのではなく、基本的に同じスクリプトを使用して推奨モデルを更新するのではなく、両方のテーブルの属性を同時に更新することは可能ですか?

API パーサー:

def get_item_info(id)
  url_raw = URI.parse("url_id=#{id}")
  url = Net::HTTP.get_response(url_raw).body
  if url.empty?
    @title        = "Product Unavailable via API"
    @prod_url     = "url"
    @cover_img    = "image"
    @price        = "Product Unavailable via API"
  else
    begin
      @response1  = JSON.parse(url)
      @title      = @response1["ProductName"]
      @prod_url   = "#{@response1["ProductUrl"]}"
      @cover_img  = @response1["ImagePath"].gsub("75X75.gif", "180X180.jpg")
      @price      = @response1["currentItemPrice"]
    rescue
    end
  end
end

現在、このデータをリアルタイムで取得し、ビューに送信しています。ページの読み込み時間を短縮するために、画像とタイトルをデータベースに保存したいと考えています。私の製品と推奨事項のテーブルは両方とも同じスキーマを持っており、両方のテーブルで同じ列を更新する必要があります。

4

1 に答える 1

0

データベースから直接トリガーメソッドを使用できます。たとえば、SQLite では

CREATE TRIGGER 'triggername' 
AFTER 'event' ON 'tablename' 
WHEN 'condition' 
BEGIN 
  UPDATE 'tablename2' SET 'field' = 'value' 
  WHERE 'condition';
END

...そして、あなたはそれについて考える必要はありません!!!!

于 2013-05-09T11:21:54.053 に答える