加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel 5.1 – 3个现有物理表之间的数据透视表

发布时间:2020-12-14 19:39:13 所属栏目:大数据 来源:网络整理
导读:我是Laravel 5.1的新手,我目前正在开展一个项目,让我自己熟悉Laravel. 我的应用程序中有很多表,但我遇到了3个表之间的特定多重关系(可能应该使用数据透视表). 所以,我有3个表: 角色 用户 项目 以下规则适用于关系: 用户可以拥有0到多个项目 许多不同的用户
我是Laravel 5.1的新手,我目前正在开展一个项目,让我自己熟悉Laravel.

我的应用程序中有很多表,但我遇到了3个表之间的特定多重关系(可能应该使用数据透视表).

所以,我有3个表:

>角色
>用户
>项目

以下规则适用于关系:

>用户可以拥有0到多个项目
>许多不同的用户都可以访问项目
>根据用户的角色,授予用户某些特定项目的权限
>用户有一个“活动”项目,该项目是应用程序从中获取数据的项目.用户可以从项目列表中更改其“活动”项目.

(权限链接到角色并允许具有特定角色的用户对项目执行一组已定义的操作)

我最初有一个用户< - >角色运作良好(就代码而言)但为用户定义的角色允许在每个项目上执行预定义的事情(对我来说不够灵活).

我已经看过另一篇文章了. same title as mine,但我担心这不能满足我的需求,因为属性保存在交叉表上,虽然在我的情况下,我已经有了物理表.

解决方法

为您的数据透视表创建一个模型,这样可以更容易使用.

ProjectAssignee:

> project_id
> user_id
> role_id
(表示项目X,用户Y具有角色Z)

然后,您可以定义以下关系:

>项目:hasMany(ProjectAssignees)> ProjectAssignee:belongsTo(Project),belongsTo(User),belongsTo(Role)>用户:hasManyThrough(Project,ProjectAssignee),hasMany(ProjectAssignee)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读