Maison > développement back-end > Golang > Comment créer des relations de clés étrangères dans Golang à l'aide de GORM ?

Comment créer des relations de clés étrangères dans Golang à l'aide de GORM ?

DDD
Libérer: 2024-11-26 03:41:11
original
197 Les gens l'ont consulté

How to Create Foreign Key Relationships in Golang using GORM?

Relations de bases de données avec GORM : création de clés étrangères

Dans le domaine des bases de données relationnelles, les clés étrangères servent de liens cruciaux entre les tables liées. Cet article vise à vous guider sur la façon d'établir une relation de clé étrangère dans votre application Golang à l'aide de GORM, une bibliothèque ORM (Object-Relational Mapping) populaire.

Comprendre le problème

Vous avez défini deux modèles, User et UserInfo, et souhaitez établir une relation de clé étrangère entre leurs champs UID et ID. Le défi consiste à s'assurer que le champ UID du modèle UserInfo référence correctement le champ id du modèle User.

Solution

Pour résoudre ce problème, vous devez configurez une contrainte de clé étrangère dans votre schéma de base de données après avoir défini vos modèles. Ceci peut être réalisé en suivant les étapes suivantes :

1. Ajouter une clé étrangère pendant la migration

Après avoir créé les modèles, utilisez la méthode AddForeignKey de GORM pour spécifier la relation de clé étrangère dans la migration de votre base de données. Ajoutez la ligne suivante à votre code de migration :

db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")
Copier après la connexion

Cette ligne établit une contrainte de clé étrangère sur la colonne UID de la table t_user_info, faisant référence à la colonne id de la table t_user. Il définit également le comportement de la clé étrangère sur "RESTRICT", ce qui empêchera l'insertion ou la suppression de données qui violeraient la relation.

2. Définir la clé étrangère d'association

Dans votre modèle Utilisateur, vous avez annoté le champ Utilisateur dans le modèle UserInfo avec une balise de clé étrangère :

User User `gorm:"foreignkey:u_id;association_foreignkey:id"`
Copier après la connexion

Cette balise informe GORM que l'utilisateur Le champ doit être utilisé comme clé étrangère et qu'il est associé au champ id dans le modèle utilisateur.

3. Mettre à jour la base de données

Exécutez la migration de la base de données pour appliquer la contrainte de clé étrangère à votre schéma.

Remarque :

À partir de GORM version 2.0 , il n'est plus nécessaire de définir explicitement des contraintes de clé étrangère dans les annotations du modèle. Cependant, pour les versions antérieures, la solution décrite ci-dessus s'applique toujours.

En suivant ces étapes, vous avez établi une relation de clé étrangère appropriée entre vos modèles User et UserInfo, garantissant que le champ UID du modèle UserInfo fait référence avec précision les données dans la table User.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal