Je crée une API pour une application Web. L'une des routes personnalisées que je construis peut être utilisée pour obtenir tous les rapports de la base de données qui utilisent un ensemble de données à partir d'un emplacement spécifique. En ce moment, cette route est un peu un goulot d'étranglement et j'essaie d'accélérer les choses.Obtient l'objet de la base de données par le champ Objet de la relation many-to-many
Un rapport peut contenir plusieurs ensembles de données. Les données peuvent également appartenir à plusieurs rapports. La table de données contient tous les emplacements d'ensembles de données d'une autre base de données (externe).
Pour clarifier ma base de données ressembler à ceci:
Report pivot table Data
|-----------| |-----------| |-------------|
| Report_id |-------<| Report_id |>-------| Data_id |
| | | Data_id | | Location_id |
|-----------| |-----------| |-------------|
J'ai écrit le script suivant pour obtenir tous les rapports à l'aide d'un certain jeu de données, mais je me sens comme cela peut se faire de manière plus efficace. Est-ce que je manque quelque chose d'évident ici ou est-ce la meilleure façon d'y arriver?
Que ks pour votre réponse! C'est certainement une façon plus agréable de le faire, même si je ne vois pas un gros avantage en termes de performance. Je vais utiliser ceci pour le moment cependant. – Edwardo
donnant des relations correctes et en utilisant ORM (au lieu de la requête DB) rendra votre code facile, lorsque le projet se développe. Des requêtes plus complexes peuvent être simplifiées en utilisant 'with()'. Si la réponse semble être utile. SVP marquer comme correct –
par exemple. $ data ['application'] = Application :: with ('ApplicationType') -> avec ('ApplicationChild') -> avec ('ApplicationChild.District') -> avec ('ApplicationChild.ElectricalSection') - > with ('ApplicationContractorSupervisorMaster') -> avec ('ApplicationContractorSupervisorMaster.ContractorSupervisor') -> avec ('District') -> first(); –