Maison > Article > développement back-end > 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 !
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"`
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
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?
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"` }
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!