这是将域中的模型与每个帐户的多个用户相关联的正确方法吗?

时间:2010-11-23 23:24:09

标签: ruby-on-rails associations models

使用Rails并且是新手(和RDBM)。已经阅读了大量有关建模和关联的帖子和文章,但可以真实地使用现实检查我正在考虑的具体案例。

我有3个主要模型:用户,帐户,计划。这些帐户是多用户的,计划由附加到帐户的所有用户处理(具有不同的权限)。如果帐户被销毁,我也会删除其用户和计划。

  1. 看起来基本关联如下。这是对的吗?
  2. 用户

    属于 - >
    < - 有很多

    帐户

    有很多 - >
    < - 属于

    计划

    1. 将用户与具有“多次通过”的计划相关联是否有任何价值?我看到它允许像@ user.plans和@ plan.user [1]这样的访问,但不能通过帐户访问每个帐户,如@ user.account.plan?

    2. 是不是“有很多通过”的情况下,中间模型只属于另外两个?我见过的所有例子都表明了这一点。在我的情况下,这是不合适的,因为帐户实际上拥有另外两个。

    3. 有没有更好的方法对此进行建模(组织的多个用户在处理一组或多个计划时)?

    4. 非常感谢输入。

1 个答案:

答案 0 :(得分:0)

您的设计是正确的。 belongs_to术语确实有点奇怪,但是正确。如果它使您的代码更具可读性和显着性,请使用“has many through”。 (换句话说,如果具有计划的用户的概念有意义并且需要,则继续创建关系。如果更清楚地设想属于帐户的计划,则坚持使用user.account。计划。)

只要您不需要将用户限制为属于某个帐户的计划的子集,并且只要用户只属于一个帐户,您的设计就足够了。