与领导者和用户建立团队关系的最佳方式是什么

What's the best way to do relationship on teams with leader and users

我正在制作一个 laravel 应用程序,但我正在处理一个问题。

table users:
-id
-name

table teams:
-id
-name

table team_agent
-agent_id (users.id)
-team_id

table team_leader
-leader_id (users.id)
-team_id

一个团队只能有一个领导和多个代理。 一名代理只能属于一个团队。 一位领导只能分配给一个团队。

在用户模型上,我有函数 team(),它应该 return 用户的团队。

如果我想在用户模型上有 2 个函数,最佳做法是什么。一种是 return 用户团队(如果是代理),另一种是 return 团队(如果是领导)。

对于领导部分,我使用枢轴 table 是否正确?或者我应该把 leader_id 放在团队 table 中吗? 我真的不知道怎么处理这部分。


或者我应该将 leader_id 添加到用户 table 的团队 table 和 team_id 中吗?

我想要一个名为角色的 eloquent 模型。哪个将跟踪哪个用户对哪个团队具有哪个角色。业务逻辑将确保一个团队只有一个领导者,并且一个球员只属于一个团队。

Table 角色

  • user_id
  • team_id
  • role_type_id

Table role_type(包含领导者和用户)

  • 编号
  • 姓名

Table 用户

  • id
  • 姓名

Table 队

  • id
  • 姓名