Während ich eine Laravel-Webanwendung baute, sah ich ein interessantes Problem und ich glaube, es sollte eine Best Practice sein, um dieses Problem zu lösen, ohne das Rad neu zu erfinden.Eloquente Viele-zu-viele-Beziehung und Verwendung von Pivot-Tabelle als separates Modell
Grundsätzlich habe ich viele-zu-viele-Beziehung:
Beitrag viele Kategorien, sondern zugleich Kategorien hat auch viele Beiträge haben. Jede Kategorie, die zu dem Beitrag gehört, kann "Stimmen" haben. Diese Stimmen gehören nicht generell in die Kategorie, sondern nur in den Pivot-Tabelleneintrag category_post.
Meine Frage ist: Sollte ich ein separates Modell "CategoryPost" erstellen und dann eins zu viele Beziehung mit "Votes" -Tabelle von gibt es eine elegantere Möglichkeit, es zu implementieren.
Ich versuche auch, den Abfrageprozess so ausdrucksstark wie möglich zu machen. Grundsätzlich
Sie eine zusätzliche Spalte im Gespräch sind in Pivot-Tisch? Wenn ja, dann ist es möglich, dies ohne ein neues Modell zu tun. Hier finden Sie Details. https://laravel.com/docs/5.3/eloquent-relationships#updating-many-to-many-relationships –
Nicht wirklich. Ich muss eine Beziehung mit der Pivot-Tabelle erstellen. Pivot-Tabelle hat ID, post_id und category_id Felder und es gibt eine andere Tabelle Abstimmungen und im Grunde brauche ich Benutzer, um Stimmen zur ID der Pivot-Tabelle hinzufügen zu können. Tut mir leid, wenn es nicht sehr gut erklärt wird. Die Struktur ist etwas schwierig, da diese Stimmen zur ID der Pivot-Tabelle gehören und wenn ich den Beitrag anzeigen muss, muss ich die Anzahl der Likes (Anzahl der Zeilen in Likes-Tabelle, wo die pivot_id == pivot_table.id) –
Oh! Hab es jetzt verstanden. Ich würde für 'CategoryPost'-Modell mit eins-zu-viele-Beziehung mit' votes' Tisch dann gehen, wie Sie erwähnten. Nichts Elegantes außer dem kommt gerade jetzt in diesem Moment auf. Warten wir auf andere Vorschläge. –