使用Rails并且是新手(和RDBM)。已经阅读了大量有关建模和关联的帖子和文章,但可以真实地使用现实检查我正在考虑的具体案例。
我有3个主要模型:用户,帐户,计划。这些帐户是多用户的,计划由附加到帐户的所有用户处理(具有不同的权限)。如果帐户被销毁,我也会删除其用户和计划。
用户
属于 - >
< - 有很多
帐户
有很多 - >
< - 属于
计划
将用户与具有“多次通过”的计划相关联是否有任何价值?我看到它允许像@ user.plans和@ plan.user [1]这样的访问,但不能通过帐户访问每个帐户,如@ user.account.plan?
是不是“有很多通过”的情况下,中间模型只属于另外两个?我见过的所有例子都表明了这一点。在我的情况下,这是不合适的,因为帐户实际上拥有另外两个。
有没有更好的方法对此进行建模(组织的多个用户在处理一组或多个计划时)?
非常感谢输入。
答案 0 :(得分:0)
您的设计是正确的。 belongs_to术语确实有点奇怪,但是正确。如果它使您的代码更具可读性和显着性,请使用“has many through”。 (换句话说,如果具有计划的用户的概念有意义并且需要,则继续创建关系。如果更清楚地设想属于帐户的计划,则坚持使用user.account。计划。)
只要您不需要将用户限制为属于某个帐户的计划的子集,并且只要用户只属于一个帐户,您的设计就足够了。