Je zou polymorphic moeten gebruiken hiervoor relaties. Hierdoor kunnen meerdere modellen gebruik maken van een enkele tafel.
In jouw specifieke geval zou elk van je tabellen verwijzen naar een noteable_id kolom en een noteable_type .
De noteable_id bevat de id van de (A/B/C) model.
Het noteable_type bevat de tekenreeksnaam van het model (A/B/C) .
De (A/B/C) modellen krijgen nu een nieuw attribuut:
/**
* (A/B/C) Model(s)
*/
public function notes()
{
return $this->morphMany('App\Notes', 'noteable');
}
En de note model start zijn polymorfe eigenschappen tegen de attribuutnaam die wordt gebruikt om uw polymorphic ids and types te identificeren :
/**
* Note Model
*/
public function noteable()
{
return $this->morphTo();
}
Nu kun je gewoon ->noteable . bellen op de (A/B/C) modellen, en ze delen allemaal 1 tabel zonder dat er voor elke tafel een andere draaitabel nodig is.