二対一の継承コメントモデル少し異なりコメントモデル - 基本的に2つの非常に異なるモデル:レール:私は現在(簡体字)モデルのセットアップ持って
Product
- Title
Restaurant
- Title
Comment
- Message
- gps_cords (sometimes?!)
私の目標は、人々が両方products
にコメントを残すようにすることですがそして、この基準に基づいて意志でrestaurants
:誰かが製品にコメントすると
- コメントは単に
message
を持っている必要があります。 - 誰かがレストランにコメントするとき、コメントには
message
とgps_cords
の値が必要です。
これらは私が検討しているものです:
シナリオ1:一つの大きなお尻のテーブル
class Product < ActiveRecord::Base
has_many :product_comments
end
class Restaurant < ActiveRecord::Base
has_many :restaurant_comments
end
class Comment < ActiveRecord::Base
# message -> string
# gps_cords -> string
# type -> string
end
class ProductComment < Comment
# only uses message
belongs_to :product
end
class RestaurantComment < Comment
# uses message AND gps_cords
belongs_to :restaurant
end
継承モデル/ Wシナリオ2:2つのコメント・モデル
/wの "重複" の取り組みをclass Product < ActiveRecord::Base
has_many :product_comments
end
class Restaurant < ActiveRecord::Base
has_many :restaurant_comments
end
class ProductComment < ActiveRecord::Base
# message -> string
belongs_to :product
end
class RestaurantComment < ActiveRecord::Base
# gps_cords -> string
# message -> string
belongs_to :restaurant
end
これを考慮してモデル化する正しい方法は次のとおりです。
- "すべてのコメント"
- "Railsの道" を照会するパフォーマンス
- 能力? (存在する場合)
- インデックスはどこに行きますか?
このすべてを読む時間がかかる人には、ありがとうございます。
この質問と回答は役に立ちます:http://stackoverflow.com/questions/555668/single-table-inheritance-and-where-to-use-it-in-rails – Finbarr