Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Saab laadida pesitsetud suhetega


Saab laadida pesitsetud suhetega


Jah, "koormusmööda" saab kasutada Laravelis pesastatud suhetega, kuid on mõned nüansid, millest teadlik olla.

Mis on `koormusmiss”?

Laraveli kõnekese meetodit "koormusmööda" on kasutatud suhete initsieerumiseks ainult siis, kui neid pole mudeli eksemplarile juba laaditud. See aitab vältida koondatud päringuid, kontrollides, kas suhteandmed on juba enne andmebaasi uuesti päringut olemas [6].

kasutades pesastatud suhetega `koormusmisseningut"

- Võite täpsustada pesastatud suhted punktide märkuses `koormusmissingiga”, näiteks `'autor.
- Siiski on teada käitumine, kus juba laaditud suhte pesastatud suhet, kui te "koormate", võib Laravel lapsevanema suhe ise laadida. Näiteks kui olete mudelile juba laadinud `pealdised”, siis põhjustab `LoadMissing ('Ittriptictions.nestrelation')` nimetamine `pealdiste seose täielikult uuesti laadimisega [1].
- See tähendab, et kuigi "LoadMissing" toetab pesastatud suhteid, võib see põhjustada vahepealsete suhete uuesti laadimise, kui need on varem koormatud, kuid ilma pesastatud suhteta.

Praktilised kaalutlused

- `koormusmisseerimine" on kasulik, kui soovite tinglikult innukalt laaditavaid suhteid, vältides päringuid duplikaatseid päringuid, kui seos on juba laaditud.
- Pesastatud suhete puhul peaksite olema teadlik, et varem laetud vanemate suhtest puuduva pesastatud suhte laadimine võib põhjustada vanema seost uuesti laadimisega, mis võib mõjutada jõudlust.
- Kui soovite vältida selliseid uuesti laadimisi, peate võib -olla hoolikalt haldama, millal ja kuidas pesitsetud suhteid laadida või kaaluda innukalt neid ette () ` -ga.

Kokkuvõte

- Jah, `LoadMissing 'saab kasutada pesastatud suhetega, kasutades punktide märkust.
- See laadib pesastatud suhteid ainult siis, kui need puuduvad.
- Kuid kui vanema suhe on laaditud ilma pesastatud suhteta, võib "koormusmisseerimine" pesastatud andmete hankimiseks vanemsuhet uuesti laadida [1] [6] [7].

See käitumine on oluline meeles pidada, et vältida ootamatuid mitmeid päringuid, kui töötate pesastatud innuka laadimisega Laravelis.

Tsitaadid:
[1] https://github.com/laravel/framework/issues/23027
[2] https://stackoverflow.com/questions/62563063/filtering-a-nest-relation-in-graphi
]
[4] https://github.com/fifemon/graphql-datasource/issues/15
]
]
]
[8] https://docs.sqlalchemy.org/14/orm/loading_relationships.html
[9] https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries