为了账号安全,请及时绑定邮箱和手机立即绑定

什么是正确的关系?- Laravel

什么是正确的关系?- Laravel

PHP
慕姐4208626 2021-07-06 13:25:29
我正在尝试为一个非营利组织建立一个领土管理系统。TMA 的目的是将区域分配给不同的用户。用户可以请求被分配到一个区域,超级管理员可以拒绝或确认。每个领土都有不同的类型(例如:A 类、B 类和 C 类)。每个用户也有不同的类型(A、B 或 C)用户只能查看和请求相同类型的区域,并且只能查看和请求当前未分配给其他用户的区域。(例如:类型 A 的用户可以查看和请求类型 A 的区域)。数据库架构:territories- id- type_id- nameusers- id- type_id- nametypes- id- nameassignments- id- territory_id- user_id- status (enum: confirmed, declined, requested, canceled)我尝试建立关系,但发现这并不简单。(或者也许我只是没有做对)这应该用查询构建器来完成吗?如果是这样,检索与 Auth User type_id 对应的可用领土列表(尚未分配)的正确方法是什么?
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

您需要为特定的 检索所有分配的 teriteri type_id,然后需要从领土表中找到剩余的 teriteri。


$user = Auth::user();

$same_type_users = DB::table('users')->where('type_id',$user->type_id)->pluck('id');


$all_assigned_teritory = DB::table('assignments')->where('user_id','IN',$same_type_users)->pluck('id');


$available_teritories= DB::table('territories')->where('id', 'NOT IN', $all_assigned_teritory)->where('type_id' , $user->type_id)->value('email');



查看完整回答
反对 回复 2021-07-09
?
交互式爱情

TA贡献1712条经验 获得超3个赞

你可以用雄辩。

如果用户只能拥有 1 个区域,则为 1 对 1;如果用户可以拥有多个区域,则为 1 对多。


查看完整回答
反对 回复 2021-07-09
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信