Associations ORM GORM Golang : préchargement des enregistrements associés
GORM est un ORM populaire pour Go qui simplifie les opérations de base de données. Lorsque vous travaillez avec ORM, la gestion des associations entre les enregistrements associés est essentielle. Dans ce contexte, nous explorerons comment récupérer efficacement des enregistrements associés à l'aide de la fonction de préchargement de GORM.
Considérons un scénario dans lequel nous avons deux structures : Place et Town. Chaque lieu appartient à une seule ville, et chaque ville a plusieurs lieux.
type Place struct { ID int Name string Town Town } type Town struct { ID int Name string }
Pour récupérer tous les lieux et charger avec impatience la ville correspondante pour chaque lieu, nous pouvons utiliser la fonction Précharger :
db.Preload("Town").Find(&places)
Cette seule ligne de code exécute deux requêtes : une pour récupérer tous les lieux et une autre pour récupérer toutes les villes qui ont un lieu correspondant. La tranche de structures Place résultante aura le champ Ville rempli.
fmt.Println(places) // Output: [{1 Place1 {1 Town1}} {2 Place2 {1 Town1}}]
Cette approche est efficace car elle évite le problème N 1, qui se produit lorsque vous devez exécuter N requêtes supplémentaires pour récupérer les enregistrements associés. Le préchargement nous permet de récupérer toutes les données nécessaires en seulement deux requêtes, ce qui le rend plus efficace pour des ensembles de données plus volumineux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!