2017-06-14 2 views
1

Ich habe eine Eins-zu-viele-Beziehung für Gym zu User Beziehung verwenden. Das ein Gym kann mehrere Benutzer haben, aber ein User kann nur ein Fitnessstudio haben.Wenn Pivot-Tabellen in Laravel

Ist es besser, eine Pivot-Tabelle dafür zu haben, um gym_id zu user_id wie folgt zu verbinden?

Gym_User Tabelle:

gym_id | user_id 

oder in der User Tabelle wie folgt?

User Tabelle:

id | name | password | gym_id 
+2

Sie Pivot-Tabellen verwenden sollten, wenn Sie eine many-to-many-Beziehungen haben. Also in Ihrem Fall, wenn ein Benutzer mehrere Fitnessstudios haben kann und Fitnessstudios mehrere Benutzer haben können; Das ist eine gute Zeit, um einen Drehpunkt zu verwenden. – Liren

+0

@Liren Also in diesem Fall nicht einen verwenden? Benutzer können nur ein Fitness-Studio, aber Fitness-Studios können – Packy

+0

@Packy viele Anwender haben - wenn Sie mehr Informationen über Ihre Anforderung wie sagen, welche Informationen Sie sammeln möchten, dann kann ich Ihnen eine einfache Abfrage, das zu tun geben. –

Antwort

1

Pivot-Tabellen verwendet werden, wenn many-to-many relationship.But für Ihren Fall ist, Sie haben One-to-many-Beziehung. Und brauchen keinen Pivot-Tisch.

Ein typisches Beispiel für viele-zu-viele-Beziehung ist Artikel & Schlagwörter. Wo 1 Artikel viele Tags haben kann und 1 Tag zu vielen Artikeln gehören kann.

Aber dein ist einfach eine Eins-zu-viele-Beziehung.

2

Sie haben eine 1 zu viele Beziehungen, in diesem Fall, dass Sie Pivot-Tabelle brauchen donot ist gym_id Fremdschlüssel in der Benutzertabelle und Sie werden sich die Beziehungen zu den Modellen definieren.

Im Fitness-Studio Modell Sie eine hasMany Beziehung zu Benutzermodell definieren und in Benutzermodell definieren, um Fitness-Studio Modell belongsto Beziehung. (Siehe Laravel-Dokumentation).

Ein schönes Beispiel für die Pivot-Tabelle ist Access Controller Modelle wie Benutzer, Rollen- und Berechtigungs ..

Verwandte Themen