0

これは簡単な質問だと思いますが、正確な答えがわかりませんでした。

私は以下を含むEventリスティングを持っています:People, Food, Costs, To-Do, etc.すべて異なる情報項目として。Items関連するデータ項目が存在する場合、対応する各テーブルをチェックする代わりに、特定の に属するすべてをカウントまたは取得できるようにしたいと考えていますEvent

これは HMT で最も簡単に実行できますか? 最初は STI だと思っていましたが、(タイムスタンプとクリエーターを除いて) 共通のデータがほとんどないため、それが理にかなっているのかどうかわかりませんでした。

4

1 に答える 1

1

スキーマ設計を複雑にしすぎていると思います。これらは、与えられたモデルを使用して答えることができるいくつかの質問です:

  • イベントを考えると、どのようなアイテムがイベントに持ち込まれましたか?

  • イベントを考えて、誰がイベントに来ましたか?

  • イベントを考えて、誰がどのアイテムを持ってきましたか?

-イベントを考えると、どのような活動がありますか?

class Event < ActiveRecord::Base
  has_many_and_belongs_to_many :items
  has_many_and_belongs_to_many :todos
  has_many :people, :through => :attendances
end

class Attendance < ActiveRecord::Base
  belongs_to :event
  belongs_to :person
end

class Person < ActiveRecord::Base
  has_many :events, :through => :attendances
end

class Item < ActiveRecord::Base
  has_many_and_belongs_to_many :events
end

class Todo < ActiveRecord::Base
  has_many_and_belongs_to_many :events 
end

このモデルは、次のことを前提としています。

  • 1つのアイテムを2つの異なるイベントに持ち込むことができます。たとえば、バスケットボールはNBAファイナル2012とNBAファイナル2011の両方に参加できます。

  • 1つのアクティビティは2つの異なるイベントで実行できます。たとえば、ビールを飲むことは、ハウスパーティーと朝食の両方で発生する可能性があります

于 2012-07-05T20:51:11.310 に答える