0

そこで、投稿モデルを持つ MySQL を利用した Rails アプリがあり、各投稿にキーワードのリストを関連付けたいと考えています。キーワードは非常に具体的で、1 つのキーワードが 2 つの投稿で共有されることは非常にまれです。

ここには 3 つのオプションがあります。

  1. 「キーワード」属性のカンマ区切りのリスト
  2. 「キーワード」属性にシリアル化された配列がある
  3. キーワード モデルを構築し、各キーワードを独自のレコードに保存し、ID を使用して投稿に関連付けます

最適なソリューションはどれですか?またその理由は?

4

3 に答える 3

1

タグを検索したい場合は、3。そうしないと、検索ですべてのオブジェクトをインスタンス化するか、インスタンス化するか、非常に醜い SQL のようなクエリを実行する必要があります。

タグのクエリを実行したくない場合は、シリアル化すると読み取り可能になり、そのためだけにテーブル (および熱心な読み込み) が回避されます。

于 2013-04-05T20:33:26.283 に答える
1

四。ActsAsTaggableOn

キーワード/タグはとても便利で、何度も使いたくなるでしょう。良いものが無料で転がっているときは、車輪を再発明しているだけです。

于 2013-04-05T20:11:50.787 に答える
0

一般に、決定は、このキーワード リストの使用を計画している目的によって異なります。複数のレコードに対して何らかの集計を行う予定がある場合、それを単一の属性 (シリアル化またはコンマ) に入れると、作業が難しくなります。そうでない場合は、シンプルさが常に良い選択です。

@Mori ActsAsTaggable が述べたように、共有キーワード (タグ) に最適ですが、ActsAsTaggable は良い選択です。

于 2013-04-05T20:32:43.380 に答える