【发布时间】:2013-05-30 21:27:13
【问题描述】:
我正在为如何开始在我的项目中设置以下一组模型关系而绞尽脑汁。我不是在寻找完整的解决方案(模型、表格、迁移等),只是为了让我朝着正确的方向前进。我通过自己的努力学习更多知识:)
简而言之,我希望我的Users(使用 Devise 创建)有一组 Inclinations,代表他们对某些事物(即温暖的天气与寒冷的天气,观看体育赛事与参加体育赛事等)的偏好一个滑动刻度(编码 5 到 -5,不包括零)。每个Inclination(或InclinationData?)都将在一个单独的表中,并带有名称、描述等,所有Inclinations都会从该表中提取数据(所以我不会在整个申请中重复自己) .此外,默认情况下,每个User 将有一个Inclination 记录,每个InclinationData(?)。
至于设置,我需要:
- 5 个表(3 个主表和两个连接表)?
- 只有三个(主要三个型号)?
- 四个(主要三个模型和
Inclinations和InclinationData的连接表)? - 四个(主要三个模型和
Users和Inclinations的连接表)? - 也许更简单一些,比如绑定到
User的单个Profile或Preferences模型?
我永远无法弄清楚如何决定是否需要连接表,这是我尝试过的最复杂的关联。
感谢您的帮助,如果您需要更多信息来帮助我,请告诉我。
【问题讨论】:
-
Inclination 和 InclinationData 模型有什么区别?
-
每个用户都会有
Inclination,他们的评分的实际记录,时间戳等。由于每个用户都会有相同的Inclinations集合,所以我想提取信息(名称,描述等)从不同的表中,并以某种方式将其链接到Inclination。这就是为什么我想知道我需要多少张桌子。这有意义吗?
标签: ruby-on-rails ruby-on-rails-3.2 rails-migrations model-associations rails-models