Rails偏好表和覆盖

时间:2013-05-13 16:48:09

标签: ruby-on-rails database ruby-on-rails-3

我想知道解决以下设计问题的最佳方法是什么:

我有一个将有一个Preferences表的User。我还将有一个属于用户的Venue。我想要以下功能:

Venue将具有首选项,所有首选项都将在属于该用户的Preference表中设置。我希望这些是“默认”偏好。但是,每个Venue都可以覆盖这些偏好。

单表继承?单独的模型,只需检查是否存在“场地偏好?”

1 个答案:

答案 0 :(得分:1)

假设用户的默认首选项和用户的特定场所首选项具有相同的确切属性,这似乎是单表继承的良好候选。因此,首选项既有用户ID,也有地址ID。然后,为了确定场地的实际偏好,您首先要检查该场地是否有偏好。否则,默认为用户的首选项。