Vorrei sapere se sono disposto a caricare correttamente le risorse nidificate nella mia API.
Nella mia app, companies
può avere molti technologies
e tools
. La relazione viene memorizzata nelle tabelle join companies_technologies
e companies_tools
.
A un endpoint /companies
, vorrei restituire tutto companies
e il loro technologies
e tools
come il seguente:
[
{
company_name: 'company_1',
...
technologies: [
{...},
...,
{...}
],
tools: [
{...},
...,
{...}
]
},
...,
{
company_name: 'company_n',
...
}
]
Per restituire 30 società, finisco per fare 61 query.
- Una query per ottenere un massimo di 30 aziende ( 1 query )
- Passa in rassegna le aziende per ottenere le tecnologie per ciascuna di esse. ( 30 query )
- Passa in rassegna le aziende per ottenere gli strumenti per ciascuna di esse. ( 30 query )
Quindi costruisco la risposta e la rimando al client.
Il tempo di risposta è molto alto anche con indici su tutte le chiavi esterne. È inevitabile fare così tante query per il mio progetto API, oppure esiste un approccio alternativo?