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
Linda Hamiltonoriginal
2024-12-01 12:41:15811parcourir

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")

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!

Déclaration:
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