Rails的数据建模问题

时间:2009-08-05 18:18:10

标签: ruby-on-rails data-modeling

我有以下实体。

     
  • 用户  
  • 事件  
  • 费用  
  • 访客

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

我试图围绕这些实体的has_manybelongs_to属性。

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

我考虑过在users表中创建一个标志,说明该记录是否是一个访客(因此不要求访客注册该网站,登录等),但这似乎不是很干净。

非常感谢任何想法。

谢谢!

托马斯

2 个答案:

答案 0 :(得分:1)

这听起来像你自然倾向于所谓的多态关联。您可以通过Ryan Bates看看这个Railscast:Polymorphic Associations

答案 1 :(得分: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