【发布时间】:2016-01-04 10:07:05
【问题描述】:
我在我的网络应用程序中遇到了问题,我希望某个好心人能够为我提供一些帮助。
在我的应用程序中,我有用户和组织 - 在我看来,一个组织可以有 许多 个用户,一个用户可以有 许多 个组织,这表示多对多关系?
User n:m Organisation
意思是我需要一个数据透视表?让我们称其为 Organisation_User。目前一切似乎都很简单,但我的复杂之处在于组织中的用户可以拥有各种角色,
1) 管理员
2) 经理
3) 金融
4) 基本
这些角色的唯一规则是管理员取代其他一切。我的问题是,理论上用户 a 既可以是基本用户,也可以是同一组织中的财务用户。我正在努力研究如何最好地存储这些数据,我是否将其直接存储在数据透视表中?或者我是否创建了一个像Organisation_User_Roles 这样的枢轴,如果是这样的话,这在 Laravel 中是否可行?看起来怎么样?
【问题讨论】:
-
也许可以在数据透视表中添加一列,例如
role,并将唯一索引设置为user_organisation_rolesmth 这样吗? -
这很好,但是一个用户可以在一个组织中拥有多个角色,一个角色列不能代表这一点。
-
可能是用户在组织中担任财务角色但没有基本角色的情况?
-
理论上他们可以任意组合这 4 个角色,但如果他们在该组合中有 admin,则这将推翻所有其他角色。
标签: php mysql laravel eloquent relational-database