Has One
在一个 has one 关联中,其也与另一个 model 建立了一对一关系,但它和一对一关系有不同的语义(及结果)。 Has one 表示:model 的每一个示例都包含或拥有另一个 model 的示例。
例如,你的应用包含了用户和信用卡,并且每个用户只能有一张信用卡。
| // User 只能有一张信用卡 (CreditCard), CreditCardID 是外键 | 
外键
Foreign Key,在 has one 关系中,被拥有 model 必须存在一个外键字段,用于保存所属 model 的主键。
外键名通常使用 has one 拥有者 model 的类型加 主键 生成,对于上面的例子,其外键名为 UserID.
当你为用户关联信用卡时,信用卡会保存用户的 ID 到它的 UserID 字段。
如果你想使用另一个字段来记录该关系,您可以通过标签 foreignkey 来改变它, 例如:
| type CreditCard struct { | 
关联外键
默认情况下,在 has one 关系中,被拥有 model 会使用其外键,保存拥有者 model 的主键,您可以更改保存至另一个字段,例如下面例子中的 Name.
| type CreditCard struct { | 
多态关联
Polymorphism Association,Gorm 支持 has many 和 has one 的多态关联。
| type Cat struct { | 
注意:many-to-many 明确的不支持多态关联,如果使用会抛出错误。
Has One 的使用
你可以通过 Related 使用 has one 关联。
| var card CreditCard | 
高级用法请参阅 关联模式