要件とお願い
クックパッド料理教室のような関連付けを考えています。
Airbnb「体験」サービスにも似ていると思います。
現状の関連付けに対する助言をお願いします
仕様と現状
仕様 | 内容 |
---|---|
まとめ1 | ある 「団体(Host)」 が ある日程 で催す Event に 「User」 が 参加 できるサービス。 |
詳細1 | ある 「団体(Host)」 は 複数のEvent をもつ。 |
詳細2 | 個々のEvent は、更に 複数の開催日時 を持つ。 |
詳細3 | 個々の開催日時 は、 複数の参加者(User) を持つ。 |
現状のモデル一覧(命名に関しても助言頂ければ)
モデル名 | 内容 |
---|---|
Host | イベントを開催する団体 |
Event | Hostが計画するイベント |
EventDate | Eventが催される日程 |
Entry | UserとEventDateを多対多の関係にし、参加機能を実装 |
User | ユーザ |
モデル関連付け
class Host < ApplicationRecord has_many :events end
class Event < ApplicationRecord belongs_to :host has_many :event_dates end
class EventDate < ApplicationRecord belongs_to :event has_many :entries has_many :users,through: :entries end
class Entry < ApplicationRecord belongs_to :event_date belongs_to :user end
class User < ApplicationRecord has_many :entries has_many :event_dates,through: :entries end
参考
※Relationshipは本件と関係ありません
※マイグレーションはまだ全て行っておりません。
課題点・気がかり
User参加イベントの、主催団体名(つまりホスト名)を取得するのに、
User → EntryDate → Event → Host みたく、長く辿る必要があるのも気がかりですし、
そもそもベストなのか もわかりません。助言をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/28 23:06
2017/06/29 04:24 編集