2009-09-20 52 views
1

我正在研究一個應用程序,該程序允許用戶使用給定的搜索條件(例如標題,關鍵字,作者)搜索亞馬遜上的特定書籍。我目前正試圖將這些搜索結果存儲到MySQL數據庫中,但我正在與關係概念爭論。Has_Many,Belongs_To數據庫驅動應用程序中的關係

很自然,我會結構模型是這樣的:

class Search < ActiveRecord::Base 
    has_many :books 
end 

class Book < ActiveRecord::Base 
    belongs_to :search 
end 

如果用戶進行第二次搜索,但是,我需要一種方法來更新爲新的圖書搜索結果。我的第一個傾向是做類似以下的事情:

Search.update(1,:books) 

更新方法是否像這樣工作?我在正確的軌道上嗎?

另外,我不確定更新數據庫中的搜索結果是否是正確的路線。如果兩個用戶同時搜索,可能會有負面影響嗎?將這些搜索結果存儲到數據庫的唯一原因是我需要顯示他們稍後在用戶會話中選擇的書籍的信息。我會想象如果我只更新了搜索結果,並且有多個用戶使用該工具會顛覆使用數據庫的全部目的,因爲第二個用戶的搜索結果會覆蓋第一個用戶的搜索結果。這是真的?

我可能會將信息存儲在用戶的cookie中嗎?

+0

你在澳大利亞,www.booko.com.au這樣做(沒有affliiation)。使用它的書籍已經節省了數百本。 – 2009-09-20 05:28:05

回答

0

之前想想如何,你需要把你的什麼什麼。你的系統需要什麼行爲?

你想讓所有用戶共享一個全局搜索對象嗎?

你想存儲每用戶

一個搜索對象你希望每個用戶有幾個搜索記錄?

然後相應地調整搜索對象,如果您的需求不是單一的全局搜索對象,那麼它需要一個具有用戶或「用戶ID」屬性的realtionship。

0

您是否試圖跟蹤全部用戶運行過的搜索,還是僅僅是最後一個?如果是前者,則需要跟蹤數據庫,如果後者可以將信息存儲在用戶的Cookie中。

相關問題