1

我正在开发一个应用程序,该应用程序允许用户使用给定的搜索条件(例如标题、关键字、作者)在亚马逊上搜索特定书籍。我目前正在尝试将这些搜索结果存储到 MySQL 数据库中,但我正在苦苦挣扎与关系的概念。

我会像这样构建模型似乎很自然:

class Search < ActiveRecord::Base
  has_many :books
end

class Book < ActiveRecord::Base
  belongs_to :search
end

但是,如果用户进行第二次搜索,我需要一种方法来使用新书更新搜索结果。我的第一个倾向是执行以下操作:

Search.update(1,:books)

更新方法是这样工作的吗?我在正确的轨道上吗?

此外,我不确定更新数据库中的搜索结果是否是正确的选择。如果两个用户同时搜索,会不会有潜在的负面影响?我将这些搜索结果存储到数据库的唯一原因是我需要显示他们稍后在用户会话中选择的书的信息。我想如果我只更新搜索结果并且有多个用户使用该工具,这将推翻使用数据库的整个目的,因为第二个用户的搜索结果会覆盖第一个用户的搜索结果。这是真的?

我是否可以将信息存储在用户的 cookie 中?

4

2 回答 2

0

在考虑如何做之前,您需要确定您的内容。您的系统所需的行为是什么?

您希望所有用户共享一个全局搜索对象吗?

是否要为每个用户存储一个搜索对象

您是否希望每个用户都有多次搜索的记录?

然后相应地调整搜索对象,如果您的要求不是单个全局搜索对象,那么它需要与用户或“用户 ID”属性的关系。

于 2009-09-20T06:32:04.823 回答
0

您是在尝试跟踪用户运行的所有搜索,还是仅跟踪最后一个?如果是前者,您需要在数据库中进行跟踪,如果是后者,您可以将信息存储在用户的 cookie 中。

于 2009-09-20T22:45:35.097 回答