1

私は次のエンティティを持っています。

  • ユーザー
  • イベント
  • 費用
  • ゲスト

ユーザーとは、私のサイトに登録されている人です。イベントは、特定のユーザーが作成して、他のユーザーに招待できるものです。費用は、特定のイベントのために特定のユーザーによって作成され、イベントの他のユーザー/ゲストに関連付けることができます (ユーザー A がユーザー B、ユーザー C、およびゲスト D のために何かを購入したように)。ゲストも特定のイベントのために特定のユーザーによって作成されますが、イベントのために作成されると、そのイベントに関連付けられた他のユーザーがゲストを見ることができます。ゲストが実際にシステムにログインすることはありません。これは、イベントに参加した可能性があるが、サイトに登録されていない人々の単なるプレースホルダーです。

これらのエンティティのhas_manyおよび属性に頭を悩ませようとしています。belongs_to

私の多対多の関係テーブルとほぼ同じように、人 (ユーザーまたはゲスト) の「タイプ」を識別する別の列が必要です。これにより、適切に結合してユーザー テーブルとゲスト テーブルから名前などを適切に取得できます。

レコードがゲストであるかどうかを示すフラグを users テーブルに作成することを考えました (したがって、そのゲストがサイトに登録したり、ログインしたりする必要はありません) が、あまりクリーンではないようです。

どんな考えでも大歓迎です。

ありがとう!

トーマス

4

2 に答える 2

1

これは、あなたが自然にポリモーフィックな関連と呼ばれるものに傾いているように私には聞こえます。Ryan BatesによるこのRailscast: PolymorphicAssociationsをご覧になると便利かもしれません。

于 2009-08-05T18:23:21.193 に答える
1

Gav Polymorphic に同意するのは、列型と多田を持つテーブルが 1 つだけの人

class Person < ActiveRecord:Base
   #methods and associations all people have
end
class User < Person
   #methods and associations specific to users
end
class Guest < Person
   #methods and associations specific to guests
end
于 2009-08-05T20:03:29.183 に答える