Maison  >  Article  >  développement back-end  >  Comment stocker une structure intégrée dans une seule table avec GORM ?

Comment stocker une structure intégrée dans une seule table avec GORM ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 07:22:30362parcourir

How to Store an Embedded Struct in a Single Table with GORM?

Comment intégrer une structure avec GORM

Dans GORM, l'intégration d'une structure vous permet de modéliser des structures de données qui contiennent une autre structure en leur sein. Ceci est utile pour imbriquer des données complexes ou encapsuler des sous-structures dans le type principal.

Pour intégrer une structure, déclarez votre structure principale et intégrez la structure imbriquée à l'aide de l'opérateur *. Cependant, GORM gère généralement les structures intégrées en créant une table distincte pour chaque structure imbriquée.

Si vous souhaitez stocker la structure intégrée comme un autre champ dans la table principale, vous pouvez utiliser la balise gorm:"column:. Cette balise spécifie le nom de la colonne où les données de la structure intégrée seront stockées.

Considérons l'exemple suivant :

<code class="go">type A struct {
    Point GeoPoint `gorm:"column:point"`
}

type GeoPoint struct {
    Lat float64
    Lon float64
}</code>

Ici, le champ Point est une structure GeoPoint intégrée, et le La balise gorm:"column:point" spécifie que les données GeoPoint seront stockées dans la colonne de points de la table A. Cela vous permet d'accéder et de manipuler les champs de la structure intégrée (par exemple, point.Lat) comme s'il s'agissait de champs directs de. la structure principale.

Cette approche offre la flexibilité nécessaire pour stocker les structures intégrées dans une seule table sans créer de tables de base de données supplémentaires.

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