1

複雑なデータ関係を持つRail3.2アプリを構築しています。データベースを構築するための最良の方法は何だろうかと思います。

私がモデル化しようとしているデータは、Facebookの要素と比較されます。

たとえば、ユーザーが作成できるアイテムは次のとおりです。

  • コメント
  • 写真
  • 投稿
  • 状態
  • 更新

これらの各アイテムは、

  • ユーザー
  • 仕事
  • 位置

たとえば、「ユーザーAはパリのマクドナルドで写真を撮りました」。

各ユーザー、ビジネス、場所のページにアクティビティストリームを表示したいと思います。

私がこれを行うことを考えた方法には、双方向のポリモーフィックな関係が含まれます。

アクティビティ用の1つ:

class ActivityFeed
  belongs_to :feedable, :polymorphic => true
end

class Comment | Photo | Status
  has_many :activity_feeds, :as => :feedable
end

1つは所有権用です

class ActivityOwner
  belongs_to :ownable, :polymorphic => true
end

class User | Business | Location
  has_many :activity_owners, :as => :ownable
end

その場合、activity_ownerはactivity_feedに属し、activity_feedには多くのactivity_ownersが含まれます。

私はそれが理にかなっていると思いますか?

これはこのケースに取り組む良い方法ですか?考えるべきパフォーマンスの問題はありますか?もっと良い方法はありますか?

フォローアップの質問:このアプローチを使用して、同じモデルを複数の方法で多態的な関係にマッピングすることは可能ですか?たとえば、ユーザーは写真の所有者であり、タグ付けされたユーザーである可能性があります。

私はRailsを学ぼうと頑張っていますが、この問題に頭を悩ませることに苦労しています。他の人からの意見、経験、アイデア、そして有用な情報やガイドへのポインタを本当に感謝します。

ありがとう!

4

2 に答える 2

0

http://blog.smartlogicsolutions.com/2008/06/13/ruby-on-rails-polymorphic-association-benchmarks/

それは少し古いですが、まだ実際に

正しいインデックスを使用している場合、大きな欠点はありません。データベース内の列が少ないだけです

于 2012-05-20T12:26:55.860 に答える
-1

興味深いことに、Ryan Bates によるPolymorphic Association (改訂版)をご覧ください。あなたがやろうとしていることへの完璧なアプローチになると思います。素敵できれいすぎる

于 2012-05-20T12:29:51.590 に答える