我是 ORM(和 GORM)的新手,如果这是一个明显的问题,我深表歉意,但文档似乎没有涵盖它。我将使用文档中的示例作为我的问题的基础问题一:属于// `User` belongs to `Company`, `CompanyID` is the foreign keytype User struct { gorm.Model Name string CompanyID int Company Company}type Company struct { ID int Name string}A只User属于一个Company→ 这由上面的代码处理ACompany有很多User→上面的代码暗示了这一点吗?或者我应该以某种方式添加 O2M 关系Company吗?问题2:有很多// User has many CreditCards, UserID is the foreign keytype User struct { gorm.Model CreditCards []CreditCard}type CreditCard struct { gorm.Model Number string UserID uint}AUser有 1+ CreditCard→ 这由代码处理ACreditCard可以属于多个用户(比如,一个共享的家庭 CC)→是隐含的吗?(如果没有:如何建立 O2M 关系)。或者,它CreditCard是明确配置为仅属于一个用户的情况吗?
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
Q1: 根据您定义结构的方式,结构中不需要明确的 O2M 关系Company,但是在加载公司详细信息时,如果要加载分配给该特定公司的所有用户,则需要添加该字段以及。它将需要一个额外的函数调用,例如Preloador Joins,但您不需要明确定义这种关系。
type Company struct {
ID int
Name string
Users []User
}
Q2:现在定义关系的方式,它被配置CreditCard为只属于一个用户。如果你想要一个多对多的关系,你需要指定关系表。这里有更多关于它的文档,但它应该看起来像这样:
type User struct {
gorm.Model
CreditCards []CreditCard `gorm:"many2many:users_creditcards"`
}
type CreditCard struct {
gorm.Model
Number string
}
- 1 回答
- 0 关注
- 59 浏览
添加回答
举报
0/150
提交
取消