1

我有以下实体。

  • 用户
  • 事件
  • 费用
  • 客人

用户是在我的网站上注册的人。事件是特定用户可以创建然后邀请人们(其他用户)的东西。费用由特定用户为特定事件创建,并且可以与该事件的其他用户/客人相关联(如用户 A 为用户 B 和用户 C 和客人 D 购买了东西)。来宾也由特定用户为特定事件创建,但一旦为事件创建,与该事件关联的其他用户可以看到来宾。客人永远不会真正登录系统......它只是可能参加过活动但未在网站上注册的人的占位符。

我试图围绕这些实体的has_many和属性来思考。belongs_to

这几乎就像在我的多对多关系表中一样,我需要另一列来标识人(用户或客人)的“类型”,以便我可以正确加入以相应地从用户和客人表中提取姓名等。

我曾考虑在用户表中创建一个标志,说明该记录是否为来宾(因此不需要该来宾在站点上注册、登录等),但这似乎不是很干净。

任何想法都非常感谢。

谢谢!

托马斯

4

2 回答 2

1

在我看来,这听起来像是您自然倾向于所谓的多态关联。看看 Ryan Bates 的 Railscast:多态关联可能对您有用

于 2009-08-05T18:23:21.193 回答
1

我同意 Gav Polymorphic 只有一个表人的列类型和 tada

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 回答