我正在开发一个带有Project、User和Group模型的应用程序。一个项目有许多组,一个用户通过成员资格模型属于许多组。我有两个选择:
创建项目时,会创建一个默认组。任何参与此项目的人都会自动添加到其中。
使成员资格具有多态性,以便用户可以成为项目的成员和项目中的组。
这两种方法都有更广泛的含义:其他模型将发挥作用,例如:文件、发布和任务。
如果我选择选项 2,这些模型也必须是多态的。但这会简化一些事情。
如果我选择选项二,我会放弃多态性,但事情会变得有点复杂。例如,查找用户项目意味着我必须查询用户的组,然后查询与这些组关联的项目,然后确保项目是唯一的。
有没有人遇到过类似的情况,任何一种方法的建议或额外的利弊?
我真的宁愿完全放弃组,但这是对权限的要求,可以根据组来分隔内容。