sql >> Database teknologi >  >> RDS >> Mysql

Flere tabeller med et til mange forhold (Laravel)

Du skal bruge polymorf relationer til dette. Det giver flere modeller mulighed for at bruge en enkelt tabel.

Se dokumentationen her

I dit særlige tilfælde vil hver af dine tabeller referere til et noteable_id kolonne og en noteable_type .

noteable_id vil indeholde id'et for (A/B/C) model.

noteable_type vil indeholde strengnavnet på modellen (A/B/C) .

(A/B/C) modeller får nu en ny attribut:

/**
 * (A/B/C) Model(s)
 */
public function notes()
{
    return $this->morphMany('App\Notes', 'noteable');
}

Og noten modellen vil starte dens polymorfe egenskaber mod det attributnavn, der bruges til at identificere dine polymorfe id'er og typer :

/**
 * Note Model
 */
public function noteable()
{
    return $this->morphTo();
}

Nu kan du blot kalde ->noteable(A/B/C) modeller, og de deler alle 1 bord uden behov for endnu et pivottabel for hvert bord.




  1. Hvordan forbinder man Django til en MySQL-database over en SSL-forbindelse?

  2. Sådan udføres en Accent Sensitive-søgning i MySql

  3. Sådan automatiseres databasefailover med ClusterControl

  4. Begræns antallet af rækker pr. id i en SQL-forespørgsel