2016-10-04 46 views
-1

我正在製作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放在團隊表中? 我真的不知道如何處理這部分。


或者我應該將leader_id添加到users表中的team表和team_id上嗎?

回答

0

我會說一個雄辯的模型角色。哪個用戶可以跟蹤哪個用戶具有哪個角色。業務邏輯可以確保一個團隊只有一個領導者,而一個團隊只屬於一個團隊。

表角色

  • USER_ID
  • TEAM_ID
  • role_type_id

表role_type(含前導和用戶)

  • ID

表用戶

  • ID

表隊

  • ID
相關問題