0

我有以下表格:用户、朋友、兴趣和假期。这个应用程序的目的是记录用户的兴趣和他们庆祝的假期(包括朋友的生日、纪念日等)以及朋友的兴趣,以便我可以向他们发送相关内容的提醒。无论如何:

用户将有兴趣
用户将有朋友
朋友也会有兴趣
用户将有他们庆祝的假期(大约 10 个列表) -
如果选择母亲节、父亲节或情人节(在节假日)我将需要存储人名和他们的兴趣

所以我想知道如何设置这些。棘手的是兴趣和假期。

兴趣应该是多态的,以便用户和朋友都可以访问吗?或者有很多:通过?

假期呢?这些将如何记录姓名和个人利益?

谢谢!我真的为这个而苦苦挣扎,可能使事情过于复杂..

4

1 回答 1

2

现在我想我明白你想要做什么,这就是我将如何建模:

User

has_many :friends
has_many :person_interests, :as => :person
has_many :interests, :through => :person_interests
has_many :user_holidays
has_many :holidays, :through => :user_holidays

Friend

belongs_to :user
has_many :person_interests, :as => :person
has_many :interests, :through => :person_interests

PersonInterest

belongs_to :interest
belongs_to :person, :polymorphic => true

Interest

has_many :person_interests
has_many :people, :through => :person_interests # may need an `inverse_of` here

UserHoliday

belongs_to :user
belongs_to :holiday

Holiday

has_many :user_holidays
has_many :users, :through => :user_holidays

通过这些设置,您应该能够执行您需要执行的查询。

于 2012-05-18T02:46:29.743 回答