go - 需要约束以具有外键,该外键引用 gorm 中的 has-many 关系中的唯一键
问题描述
如何让外键引用唯一键而不是gorm中的主键?我在下面有很多关系的数据结构。具有以下约束,我可以在 db 中添加 ModuleData,但我无法添加 DimensionOrderData。但是,如果我有引用主键的外键,那么它可以工作。我是否需要添加更多约束才能使其正常工作?
typeDimensionOrderDatastruct {
ModuleID int64`gorm:"primary_key;column:module_internal_id"`
DimensionID int64`gorm:"primary_key;column:dimension_id"`
SequenceNumber int`gorm:"column:sequencenumber_cnt"`
}
// ModuleData : Module data
typeModuleDatastruct {
ID string`gorm:"primary_key;type:uuid;column:module_id"`
InternalID int64`gorm:"unique;column:internal_id"`
Name *string`gorm:"column:name_nm"`
Reference *string`gorm:"column:reference_txt"`
DimensionOrder []DimensionOrderData `gorm:"foreignkey;column:module_internal_id;references:internal_id"`
}
解决方案
此处的 Gorm 文档https://gorm.io/docs/has_many.html,指定您可以按如下方式覆盖外键
type User struct {
gorm.Model
CreditCards []CreditCard `gorm:"foreignKey:UserRefer"`
}
type CreditCard struct {
gorm.Model
Number string
UserRefer uint
}
推荐阅读
- java - 如何读取文本文件、处理它并写入 toString()
- kubernetes - 每个命名空间的 Kubernetes 资源预留
- android - React Native 错误:找不到模块'jest-serializer'
- pandas - 重塑 Pearsonr 相关性
- sql - CASE 中的 PARTITION BY 不适用于多个 AND 语句
- r - 从多个矩阵中高效操作和提取数据 - 均值和日期
- python - 在密集的 Keras 层中绑定自动编码器权重
- android - 通过 Wireshark 实时捕获 Android 蓝牙流量
- bash - 从 awk 输出,如何剪切或修剪列中的字符
- python - python自定义函数中使用GEKKO变量的问题