我应该使用多态来建模这些关系吗?

时间:2013-08-08 20:40:26

标签: ruby-on-rails data-modeling

我正在使用项目用户群组模型开发应用。项目有许多组,用户通过成员模型属于多个组。我有两个选择:

  1. 创建项目时,会创建一个默认组。参与此项目的任何人都会自动添加到其中。

  2. 使会员资格具有多态性,以便用户可以成为项目的成员和项目中的一个组。

  3. 这两种方法都有更广泛的含义:其他模型将发挥作用,例如:文件,帖子和任务。

    如果我选择选项2,那些模型也必须是多态的。但它会简化一些事情。

    如果我选择第二选项,我会放弃多态,但事情变得有点复杂。例如,查找用户项目意味着我必须查询用户的组,然后查询与这些组关联的项目,然后确保项目是唯一的。

    有没有人遇到类似的情况,任何建议或其他方法的利弊?

    我真的宁愿完全放弃群组,但这是对权限的要求,要根据群组分离内容。

1 个答案:

答案 0 :(得分:0)

我认为最佳选择是创建默认组,因为:

  1. 然后你可以采用清晰的结构:

    • 项目 - 有很多小组
    • 群组 - >有很多用户等,
  2. 您可以轻松管理群组

  3. 你的核心结构很简单,因此几年下线,易于扩展

  4. 您通过自动执行一步来简化用户的工作流程。我个人认为,如果您能让用户快速启动并运行,他们会发现您的系统用户友好