Maison > développement back-end > Golang > Comment créer des relations de clés étrangères dans GORM (avant et après la version 2.0) ?

Comment créer des relations de clés étrangères dans GORM (avant et après la version 2.0) ?

Linda Hamilton
Libérer: 2024-12-01 12:41:15
original
860 Les gens l'ont consulté

How to Create Foreign Key Relationships in GORM (Before and After Version 2.0)?

Création de clés étrangères avec GORM

Créer des relations de clé étrangère dans GORM implique de spécifier la clé étrangère d'association, qui relie la clé étrangère dans le secondaire modèle au domaine spécifique dans le primaire model.

Problème :

Dans le scénario donné, les modèles User et UserInfo sont destinés à avoir une relation de clé étrangère, avec l'UID dans UserInfo faisant référence au champ id dans Utilisateur. Cependant, la tentative de code pour créer ces associations de clés étrangères semble échouer.

Solution :

Pour établir la relation de clé étrangère, vous pouvez utiliser AddForeignKey de GORM. méthode :

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

Explication :

  • Le premier argument, "u_id", représente le champ de clé étrangère dans le modèle secondaire (UserInfo).
  • Le deuxième argument, "t_user(id)", spécifie la table et le champ dans le modèle principal (Utilisateur).
  • Les troisième et quatrième arguments, "RESTRICT", définissent le comportement lorsque la clé primaire est mise à jour ou supprimée. Dans ce cas, cela restreindra l'opération.

Remarque :

Cette solution s'applique aux versions de GORM antérieures à 2.0. Pour GORM 2.0 et supérieur, les contraintes de clé étrangère sont automatiquement ajoutées lors de la définition de la relation.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal