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

Posted

技术标签:

【中文标题】这是将域中的模型与每个帐户的多个用户相关联的正确方法吗?【英文标题】:Is this the right way to associate models in a domain with multiple users per account? 【发布时间】:2010-11-23 23:24:09 【问题描述】:

使用 Rails 并且不熟悉它(和 RDBM)。已阅读大量有关建模和关联的帖子和文章,但可以真正使用现实检查来检查我对特定案例的想法。

我有 3 个主要模型:用户、帐户、计划。这些帐户是多用户的,所有附加到该帐户的用户(具有不同的权限)都在执行计划。如果帐户被销毁,我也会取消其用户和计划。

    看起来基本关联如下。这是正确的吗?

用户

属于->

帐户

有很多 ->

计划

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

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

    有没有更好的方法来对此建模(一个组织的多个用户正在制定一组一个或多个计划)?

非常感谢您的输入。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

非常感谢!只是确认我需要跳回编码,并且有一个非常愉快的会议。 所以,我不会与“虽然”相关联,但如果我这样做了,这听起来不是““有很多通过”的情况,中间模型只属于其他两个。”是对的吗?再次感谢您。

以上是关于这是将域中的模型与每个帐户的多个用户相关联的正确方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用基本身份验证而不是 OAuth 2.0 将 Alexa 用户与 3rd 方应用程序相关联

如何将 PayPal 交易与我数据库中的会员帐户信息相关联?

AZure账号-订阅-租户

无论如何要获取与 UWP 中的购买相关联的 Microsoft Store 帐户电子邮件地址吗?

将用户与 Rails 中的嵌套模型相关联

使用工具Csvde将域中的所有用户的信息导出