複雑なデータ関係を持つ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を学ぼうと頑張っていますが、この問題に頭を悩ませることに苦労しています。他の人からの意見、経験、アイデア、そして有用な情報やガイドへのポインタを本当に感謝します。
ありがとう!