sql >> Database >  >> RDS >> Mysql

Meerdere tabellen met een-op-veel-relatie (Laravel)

Je zou polymorphic moeten gebruiken hiervoor relaties. Hierdoor kunnen meerdere modellen gebruik maken van een enkele tafel.

Bekijk hier de documentatie

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.




  1. Aantal rijen Lezen / Werkelijke rijen Lees waarschuwingen in Plan Explorer

  2. Ontvang de huidige bijgewerkte kolomnaam om in een trigger te gebruiken

  3. Kan batch niet invoegen in Oracle DB met MyBatis

  4. Hoe kom je achter de totale omvang van de gegevens in de MySQL-database?