在不同组模式设置中具有不同角色的用户


User with different roles in different groups schema setup

我即将在Laravel(4)中编写一个小游戏社区,并且在弄清楚如何设置数据库表时遇到了一些麻烦。它应该是这样工作的:

Users table:
John
Lisa
Stewie
Groups table:
Team red
Team blue
Team green
Roles table:
Superadmin
Admin
Moderator
Demigod
Permissions table: (describing what permissions each role has)
Superadmin (Total control of everything, will only be me and maybe a buddy with this role.)
Admin (create delete edit forums etc + everything a moderator does)
Moderator (delete forum posts, ban users)
Demigod (some other permissions)

用户,例如Stewie,可以属于一个或多个团队。但他在每支球队中扮演着不同的角色。Stewie -红队-行政Stewie - Team Blue - Moderator +半神

我想知道如何以一种聪明的方式设置这个?首先想到的是user_group数据透视表。但是我如何将它与特定于组+用户的角色联系起来呢?我应该做某种三向数据透视表还是可以用其他方式设计,使用不同的表设置?

您需要一个像

这样的membership
Membership:
- membership_id
- user_id
- group_id

和role表:

Roles:
- membership_id
- role_id