2009-09-20 55 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中。

相关问题