簡體   English   中英

如何處理多個多對多關系

[英]How to handle multiple many to many relationships

我有一個 Laravel 項目,其中可能存在多個多對多關系,但我覺得在正確使用數據透視表方面我正在繞圈子。

實體如下:

  • 中心:即將開業的辦公室,有名稱、位置、郵政編碼、開業日期等信息
  • 任務:中心開通前必須完成的任務,包含名稱、部門、中心類型等信息
  • 部門:一個部門代表一個關鍵領域,例如 IT、市場營銷、銷售等。每個任務都會引用一個部門。
  • 用戶:用戶是系統的用戶,屬於一個部門,可以完成任務。

注意事項:

  • 一個部門有用戶,所以用戶會有一個 department_id
  • 一個任務有一個部門,所以也會有一個 department_id
  • 一個中心有部門,所以一個 pivot 叫做 center_department,有 center_id 和 department_id
  • 用戶有任務分配給他們,但只有屬於中心的任務

底部的陳述是我要繞圈子的地方,因為:

  • 將任務分配給一個中心,這很好,因為您可以使用 center_id 和任務 id 制作像 center_task 這樣的表
  • 用戶有任務分配給他們,但是,是否可以有一個具有 user_id 和 center_task_id 的 task_user 表,實際上是一個使用另一個 pivot 表的 pivot 表?

這是因為用戶不能直接分配給任務,他們只能分配給中心內的任務,因為任務與中心具有多對多關系。

如果我只使用任務 ID 分配一個用戶,他們將被分配到每個相關中心的該任務。

那么,再次擁有一個使用另一個 pivot 表的 pivot 表是否可以,或者這是否顯示了我建議的結構的問題?

預期流量

  • 用戶創建任務,為其分配部門和類型,以便該任務僅與特定部門和中心類型相關。
  • 用戶可以將中心內的任務分配給與任務部門相關的部門中的用戶
  • 然后,中心的任務將有一個受讓人和一個截止日期

理論上,我最終會得到一個 pivot 表,該表具有以下內容:

  • 用戶身份
  • center_task_id
  • 最后期限
  • date_completed

本質上我只是覺得我連接了太多的部分?

Laravel 為您進行鏈接,只需在您的模型中使用(在這種情況下) morphToMany()morphedByMany()來建立兩個表之間的關系。 有一個非常好的 Laracast 和一個非常好的文檔。 我在下面鏈接了這個:

Laracast 視頻很好地解釋了多對多關系

Laravel Eloquent ORM 的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM