2015-12-30 39 views
0

對於Laravel,我很新,我試圖在開始任何事情之前設計我的數據庫模式的正確方法。n-n與laravel中的同一張表的附加值的關係

所以,這裏是處理:

  • 我創建於哪些用戶必須創建一個賬號的應用。我需要一個users模型/數據庫表。這裏沒問題。
  • 這些用戶將能夠提及他們的一些朋友。這些朋友應該能夠註冊併成爲合法用戶,否則他們不會。
  • 我想先製作兩張表格,但由於朋友也可以成爲用戶,所以我認爲將它們添加到users表格非常合乎邏輯(在未註冊時有類似未註冊的標誌)。

問題在於,我認爲Laravel能夠自動地在用戶和用戶之間建立正確的n-n關係,但是我也想讓第一個用戶爲他們的朋友添加一個化名。在「常規」數據庫中,我會在關係數據庫中添加化名字段,但Laravel有可能,以及如何?

閱讀我自己之後,我可能不是很明白。硅,這裏有可能的用戶故事:

  • 創建我的帳戶
  • 我提到我的朋友鮑勃和他的電子郵件,它會創建一個新用戶僅使用電子郵件,而在我和鮑勃之間的關係我叫他「朋友」
  • 愛麗絲創建她的帳戶,並提到鮑勃。它將她的用戶帳戶與bob鏈接起來,但在關係表中,她稱他爲「親愛的」
  • Bob創建了自己的帳戶。它的用戶數據庫輸入是用他的個人信息/化名完成的,但是愛麗絲和我仍然將他視爲朋友/親愛的

對不起,

+0

請仔細閱讀此處:https://laravel.com/docs/5.2/eloquent-relationships#many-to-many ..如果您仍然堅持某些事情,您可以更新您的問題 – teeyo

+0

這些樞紐似乎完全正確我想要什麼,非常感謝! –

回答

0

你應該這樣做,因爲你提到。

  1. 爲所有用戶創建一個用戶表 - 用戶能夠登錄,因此這將是在這裏使用的基本用戶模型是一個好主意。

  2. 創建一個假名錶,它是1:n--每個用戶都可以給他炒一個新的pseudonyn。但是每個朋友只有一個筆名,或者?如果有人設置了,你可以用假名返回他的「用戶對象」,但是隻有用戶名爲usern。這裏使用存取器:https://laravel.com/docs/5.2/eloquent-mutators

  3. 創建N:N,你有用戶ID連接的用戶ID,在這裏展示AB表:https://laravel.com/docs/5.2/eloquent-relationships

我真的在這裏試着用雄辯的,這使得它更具可讀性。