2016-05-24 105 views
0

我有2個CSV文件中,第一個包含數千個區域名稱/ ID配對,即Ruby on Rails的數據填充設計

ID, area_name 
1, "New York" 
2, "New Jersey" 

等等

而關於這些地區的第二包含數據,唯一標識符是ID而不是名稱(因爲名稱在area_name中不唯一)。

area_id, field_1, field_2, field_3 
1,  98,  48,  24 
2,  10,  28,  45 

我會獲取第一CSV於Postgres一次,它永遠不會改變,但我會得到第二CSV新線每隔幾個星期左右,我將使用將數據插入到數據庫。

我的問題是 - 什麼是最好的方式來存儲所有這些在我的數據庫中,因爲我需要顯示區域名稱給用戶,但是當他們選擇一個區域時需要使用area_id查詢數據庫,數以千計。

提前致謝!

回答

0

更好地將第一個csv存儲在名爲Area的表中,並將has_one關係放置到第二個模型(例如AreaDetails)。然後你可以通過第一個表查詢第二個表。

class Area < ActiveRecord::Base 
    has_one :area_detail, dependent: :destroy 
end 

class AreaDetails < ActiveRecord::Base 
    belongs_to :area 
end 

您現在可以通過運行獲取ID爲1區的area_details:

Area.find(1).area_detail 

我假設當數據進入您要刪除第2表中的數據。如果要繼續使用。數據並且需要向他們展示全部,那麼您應該使用has_many而不是has_one