2017-07-12 3 views
0

Ich habe Pivot-Tabelle und es hat eine zu viele Beziehung mit einer anderen Tabelle, also bin ich verwirrt mit Datenbank-Design und Beziehung in Laravel Elequent.Eins zu viele Beziehung in Pivot-Tabelle in Laravel?

enter image description here

Ist dies der richtige Weg databse zu entwerfen oder sollte ich schaffen id als Primärschlüssel für award_entries und es verwenden, Fremdschlüssel in entry_files ist. ?

Wenn ich bestehenden Design folgen (erste), wie schreibe ich Beziehung in Laravel eloquent?

+0

keine Notwendigkeit, 'user_id' in' entry_files' Tabelle wieder. Wie kann es bezeichnet werden mit 'award_id' in' award_entries', was ein 'fremder_key' in 'entry_files' ist. –

+0

Die Namenskonvention hier ist irreführend, es sollte "Benutzer" und "Auszeichnungen" -Tabellen sein und die Pivot-Tabelle wäre "award_users", wenn die Absicht besteht, einen Benutzer mit Auszeichnungen zu assoziieren. Auch die "entry_files" 'award_entries *' Schlüssel sollten überhaupt nicht drin sein. "award_entries" verlinkt Preise und Nutzer. – apokryfos

+0

no..dies ist ein Wettbewerb Einträge des Benutzers 'award_entry'. Jeder Eintrag enthält mehrere Dateien, die in 'entry_files' gespeichert werden –

Antwort

0

Hier, wie Ihre Beziehung aussehen wird. Möglicherweise müssen Sie den Modell- oder Spaltennamen ändern.

In award_entry Modell:

public function entry_file() { 
     return $this->belongsTo('App\Models\entry_file','award_entries_award_id'); 
    } 

Und in Entry_file Modell:

public function award_entries(){ 
     return $this->hasMany('App\Models\award_entries','award_entries_award_id'); 
    } 
Verwandte Themen