php - 我应该如何模拟这种关系?
问题描述
我对 PHP 比较陌生,刚开始学习 Laravel。我留下了一些关于我正在从事的个人学习项目的问题。提前感谢您的任何反馈!
语境:
我的项目使用默认的 laravel 7.x UI 和 auth 脚手架。我已经使用角色表和角色用户表实现了用户角色。这按预期工作(例如,我可以对用户及其角色执行 CRUD)
Many users can have many roles.
ROLES:
Customer
Agent
Admin
我在尝试实现用户Statuses时遇到了麻烦。像这样:
具有代理角色的用户在任何给定时间只能拥有一个状态;“可用”或“忙”。
问题:
#1。我应该如何定义代理用户/状态关系?最初我做了多对多。我创建了一个 statuses 表和 status_user 表。后来我得出结论,这是不正确的,并将关系更改为多对一,如下所示。(我没有改变我的任何表)
在用户模型中:
public function statuses(){
return $this->belongsTo('App\Status');
}
在状态模型中:
public function users(){
return $this->belongsToMany('App\User');
}
一些想法:
在遇到一些查询问题后,考虑到我在上面对它们进行建模的方式,我开始认为使用这两个表(statuses 和 status_user)是不正确的。
我应该回滚并在用户表中添加一个“status_id”列,同时保持表原样吗?我开始认为我把整个关系搞错了。
也许我不应该将状态与用户表相关联;而不是一个单独的“代理”表?
解决方案
推荐阅读
- vue.js - 使用 vuejs 和 vuetify 对话框访问 dom 元素
- javascript - Promise 和 create-react-app 的问题
- python - Windows PowerShell 中的烧瓶问题
- javascript - 将 React 组件作为对象值返回并将道具绑定到它
- reactjs - 如何从 Redux-Saga 中选择状态
- flutter - 如何在颤动中使用此图像中的容器内的半圆形?
- dart - 如何访问 Dart 内置方法的源代码?
- javascript - 获取当前 CSS 网格布局中的角项目,在悬停时展开
- javascript - 如何在 React 中添加新类而不重置以前的类
- mysql - 如果 mysql 中的前两行相同,则返回 null