1

ユーザーが特定の検索基準 (タイトル、キーワード、著者など) を使用して Amazon で特定の本を検索できるようにするアプリケーションに取り組んでいます。現在、これらの検索結果を MySQL データベースに保存しようとしていますが、苦労しています。関係の概念で。

モデルを次のように構成するのは当然のことです。

class Search < ActiveRecord::Base
  has_many :books
end

class Book < ActiveRecord::Base
  belongs_to :search
end

ただし、ユーザーが 2 回目の検索を行った場合、検索結果を新しい本で更新する方法が必要です。私の最初の傾向は、次のようなことをすることです:

Search.update(1,:books)

更新方法はこのように機能しますか? 私は正しい軌道に乗っていますか?

また、データベースの検索結果を更新することが正しい道なのかどうか、私も確信が持てません。2 人のユーザーが同時に検索した場合、悪影響が生じる可能性はありますか? これらの検索結果をデータベースに保存する唯一の理由は、後でユーザー セッションで選択した本の情報を表示する必要があるからです。検索結果を更新しただけで、複数のユーザーがツールを使用していると、データベースを使用する目的全体が覆され、2 番目のユーザーの検索結果が最初のユーザーの検索結果を上書きしてしまうのではないかと想像します。これは本当ですか?

おそらく、ユーザーの Cookie に情報を保存できますか?

4

2 に答える 2

0

ユーザーが実行したすべての検索を追跡しようとしていますか、それとも最後の検索だけを追跡しようとしていますか? 前者の場合はデータベースで追跡する必要があり、後者の場合はユーザーの Cookie に情報を保存できます。

于 2009-09-20T22:45:35.097 に答える
0

どのように考える前に、あなたのを特定する必要があります。システムに必要な動作は何ですか?

1 つのグローバル検索オブジェクトをすべてのユーザーで共有しますか?

ユーザーごとに 1 つの検索オブジェクトを保存しますか?

各ユーザーに複数の検索の記録を持たせたいですか?

次に、それに応じて検索オブジェクトを調整します。要件が単一のグローバル検索オブジェクト以外の場合は、ユーザーまたは「ユーザー ID」属性との関連付けが必要です。

于 2009-09-20T06:32:04.823 に答える