首页 > 解决方案 > Laravel - 具有 3 个模型的数据透视表,多对多和一对多

问题描述

我想在我的 Laravel 项目中为具有角色和权限的用户进行身份验证。实际上这不是问题,但用户可以创建团队或被邀请成为任何团队的成员,并且任何团队中的每个用户在团队中都有他的一个角色(在另一个团队中,用户可能有另一个角色)。本质上,用户必须有许多角色,但在一个特定团队中只有一个角色,我不明白我是否创建了正确的数据库关系。

请检查带有关系的图像以获取更多信息: 数据库关系在这里

一般来说:

  1. 用户有很多团队,团队有很多用户(多对多)
  2. 团队有很多角色,角色有很多团队(多对多)
  3. 用户有许多角色,但团队中只有一个角色应该存在什么关系?

我很感兴趣如何正确地做到这一点。如何在未来尽量减少杂乱的代码,避免重新设计数据库关系。

非常感谢你们!

标签: laraveleloquenteloquent-relationship

解决方案


也许您确实需要多态关系: https ://laravel.com/docs/master/eloquent-relationships#custom-polymorphic-types 与变形图。 https://nicolaswidart.com/blog/laravel-52-morph-map


推荐阅读