Maison > développement back-end > Golang > GORM : définir plusieurs colonnes avec la même clé étrangère

GORM : définir plusieurs colonnes avec la même clé étrangère

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-02-13 11:45:16
avant
1179 Les gens l'ont consulté

GORM : définir plusieurs colonnes avec la même clé étrangère

L'éditeur php Baicao vous pose aujourd'hui une question sur GORM : Comment utiliser la même clé étrangère pour définir plusieurs colonnes dans GORM ? Dans la conception de bases de données, nous devons parfois utiliser la même colonne de clé étrangère dans plusieurs tables, ce qui nous oblige à définir et configurer correctement GORM. Ensuite, nous présenterons en détail comment implémenter cette exigence dans GORM, ainsi que les considérations associées. Explorons ensemble ce sujet intéressant !

Contenu de la question

Je crée un projet Golang MySQL en utilisant GORM. J'ai une table appelée comptes avec des champs

ID        uint      `json:"id" gorm:"primary_key;auto_increment;not_null"`
    Name      string    `json:"name"`
    Company   string    `json:"company"`
    GSTIN     string    `json:"gstin"`
    AccountNo string    `json:"accountNo" gorm:"unique"`
    IFSC      string    `json:"ifsc"`
    CreatedAt time.Time `json:"createdAt"`
    UpdatedAt time.Time `json:"updatedAt"`
Copier après la connexion

Maintenant, je veux créer une table nommée Transactions avec des champs

ID            uint      `json:"id" gorm:"primary_key;auto_increment;not_null"`
    Amount        float64   `json:"amount"`
    CreatedAt     time.Time `json:"createdAt"`
    UpdatedAt     time.Time `json:"updatedAt"`
    Date          time.Time `json:"Date"`
    PaymentMode   string    `json:"paymentMode"`
    SourceId      uint      `json:"source"`   ------>>>>> Want this to be AccountID foreign key
    UTR           string    `json:"utr" gorm:"uniqueIndex"`
    DestinationId uint      `json:"to"`       ------>>>>> Want this to be AccountID foreign key
    Account       Account
Copier après la connexion

Je ne sais pas comment le définir dans go Gorm ? Puis-je avoir deux champs avec des clés étrangères vers la même colonne d’une autre table ? Comment puis-je faire cela?

Solution

Est-ce utilisé ? Merci!

type Debit struct {
    ID                 uint      `json:"id" gorm:"primary_key;auto_increment;not_null"`
    Amount             float64   `json:"amount"`
    CreatedAt          time.Time `json:"createdAt"`
    UpdatedAt          time.Time `json:"updatedAt"`
    PaymentMode        string    `json:"paymentMode"`
    SourceId           uint      `json:"sourceId"`
    UTR                string    `json:"utr" gorm:"uniqueIndex"`
    DestinationId      uint      `json:"destinationId"`
    SourceAccount      Account   `gorm:"foreignKey:SourceId"`
    DestinationAccount Account   `gorm:"foreignKey:DestinationId"`
}
Copier après la connexion

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