2012-02-15 4 views
0

私はRuby on Railsサイトで、1つ以上のキーワードでタグ付けできる一連のレコードを作成しています。このサイトの質問には、キーワードでタグ付けすることができます。キーワードクエリ用の最速データベースデザイン

これを行うための方法は、レコードとキーワードの間に多対多の関係を持たせることです。しかし、たくさんのレコードがあるときにこの結合が検索を遅くするかどうかは疑問だ。

特に、キーワードA、F、Gでタグ付けされたすべてのレコードを私に渡すなど、複数のキーワードの検索を行う必要があります。 Railsがこのタイプのクエリをどれだけうまく最適化できるかはよく分かりません。

このタイプのアプリのモデルやコントローラを構成する最善の方法はありますか?

+1

類似した質問[http://stackoverflow.com/questions/234796/optimal-data-architecture-for-tagging-clouds-and-searching-like-stackoverflow](http://stackoverflow.com/questions/) 234796 /タグ付けのための最適なデータアーキテクチャ - 雲と検索のようなスタックオーバーフロー)? – Bill

+0

ビル:参考に感謝します。非常に便利。 – John

答えて

1

レコードとキーワード(タグ)の間の典型的な関係は、ストレージ構造として非常によく機能しますが、あなたがアプリケーションへのより高速なアクセスを心配している場合は、アプリケーションにmemcachedのようなキャッシングレイヤーを追加しないでください。プログラムの複雑さは増しますが、readオペレーションには大きなパフォーマンス上の利点があることが知られています。

+0

ああ...私はあなたが私の特定のアプリのためにそれをヒットしたと思います。 1つのタグのすべてのレコードを取得することは明らかに非常に効率的です.3つのタグの傍受を見つけると、状況が遅くなることがあります。しかし、RailsにはSQLキャッシュが組み込まれているため、セットの最初のヒットは遅くなりますが、その後のヒットは速くなります。問題が解決しました。ありがとう。 – John

関連する問題