php小编百草今天为大家带来一个有关GORM的问题:如何在GORM中使用相同的外键定义多个列?在数据库设计中,有时我们需要在多个表中使用相同的外键列,这就需要我们在GORM中进行合适的定义和配置。接下来,我们将详细介绍如何在GORM中实现这一需求,以及相关的注意事项。让我们一起来探索这个有趣的话题吧!
我正在创建一个使用 GORM 的 Golang MySQL 项目。我有一个名为accounts 的表,其中包含字段
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"`
现在我想制作一个名为带有字段的交易的表
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
我不知道如何在 go Gorm 中定义它?我可以有两个带有外键的字段到另一个表的同一列吗?如何做到这一点?
是用这个做的吗?谢谢!
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"` }
以上是GORM:使用相同的外键定义多个列的详细内容。更多信息请关注PHP中文网其他相关文章!