Ich habe versucht, einige Datenbankschema zu definieren, um das Laravel-Framework zu verwenden. Ich möchte ein Fußballspiel modellieren. Der erste Schritt, den ich machen wollte, ist das Entity Relationship Diagramm zu definieren, aber ich fand das (was ich für ziemlich trivial hielt) in einigen Aspekten verwirrend.Datenbank eins zu viele mit zwei Fremdschlüsselfeldern in Laravel
Erstens ist der offensichtliche Ansatz zu sagen, dass ein Match mit zwei Teams zusammenhängt und ein Team mit einer beliebigen Anzahl von Matches verbunden ist. Wir hätten also eine "Viele zu Viele" -Beziehung.
Aber die Implementierung einer Viele-zu-viele-Beziehung besteht darin, zwei Tabellen und eine Zwischentabelle zu haben, um beide Entitäten in Beziehung zu setzen. Ich denke, das wäre zu viel, wenn ich weiß, dass ein Match immer zwei Teams hat und einfach zwei Spalten (local_id und visitant_id) mit Fremdschlüsseln für den Teamtisch haben würde. Außerdem möchte ich tun können:
Match::find(1)->local() or Match::find(1)->visitant();
Also, auf das ich dachte, ich ein „one to many“ -Beziehung bin der Umsetzung, aber mit diesem habe ich ein anderes Problem. Zum Abrufen alle Spiele ein Team spielte hat, würde ich tun:
Team::find(1)->matches();
Aber ich kann das nicht tun, weil ich nur eine Schlüsselspalte angeben können, wenn die Spiele definieren() -Methode in beredten (standardmäßig wäre es team_id, aber es sollte visitant_id und local_id sein.
für mich diese Rückkehr nur "visitant_id" verwandte Modelle ... – ciccioassenza
Dies funktioniert immer noch in Laravel 5.2 – arleslie
In Laravel 5.3 $ Dies ist ein leeres Modellobjekt. Irgendwelche Ideen, wie das in Laravel 5.3 zu erreichen? –