0

我有两个表:产品和建议。两个表上的前 200 万条记录包含相同的数据,然后大约有 100k 条记录不同。基本上这些表包含产品 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 回答