如何在laravel中设计多方和多方关系?

问题描述 投票:1回答:1

表:

  • (组){group_id}
  • (用户){user_id}
  • (权限){permission_id}

我想设置适用于组(所有用户)和特定用户(组中)的权限。见下面的ERD。

我当然可以创建两个表:

  • (Group_Permission){group_id,permission_id}
  • (Group_User_permissions){group_id,permission_id,user_id}

或者我可以创建一个表:

  • (Group_User_permissions){group_id,permission_id,user_id}

并在更新组的权限时添加所有用户。

我想知道在laravel中是否有更优雅的解决方案。

ERD

laravel database-design eloquent
1个回答
0
投票

恕我直言,我会建立这些关系:

  1. 用户 - >多对多 - >组
  2. 小组 - >多对多 - >许可

通过这种方式,用户可以通过自己的组拥有许多权限。

对于直接向用户分配权限的情况,您可以定义名称等于用户用户名或类似名称的组,以便您可以仅以该用户可用的方式限制该组。

您可以在laravel documentation中找到上面使用的关系的参考。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.