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

时间:2016-10-04 09:23:37

标签: mysql laravel eloquent relationship

我正在制作一个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(),它应该返回用户的团队。

如果我想在用户模型上拥有2个功能,那么最佳做法是什么。一个返回用户团队(如果是代理)和一个返回团队的团队(如果是领导者)。

我是否正确使用枢轴表为领导者部分做了什么?或者我应该将leader_id放在团队表中? 我真的不知道如何处理这部分。

或者我应该将leaders_id添加到users表中的team_id和team_id吗?

1 个答案:

答案 0 :(得分:0)

我会称之为角色的雄辩模型。哪个会跟踪哪个用户具有哪个团队的角色。业务逻辑将确保一个团队只有一个领导者,而一个团队只属于一个团队。

表格角色

  • USER_ID
  • TEAM_ID
  • role_type_id

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

  • ID
  • 名称

表用户

  • ID
  • 名称

表团队

  • ID
  • 名称