1、一對一
* User模型中: Profile \*Profile`orm:"rel(one)"`正向關系,有外鍵字段
* Profile模型中: User \*User`orm:"reverse(one)"`反向關系,只是關系,沒有外鍵
~~~
type User struct {
Id int
Name string
Img *Userimg `orm:"reverse(one)"` //一對一
}
type Userimg struct {
Id int
Name string
User *User `orm:"rel(one)"` //一對一
}
func init() {
orm.RegisterModel(new(User), new(Userimg))
}
~~~
2、一對多
* article模型中:User \*User`orm:"rel(fk)"`正向關系,有外鍵,外鍵在多的一方
* user模型中:Articles \[\]\*Articles `orm:"reverse(many)" 反向關系,沒有外鍵
一對多,外鍵在多的一方
~~~
type User struct {
Id int
Name string
Ather []*Ather `orm:"reverse(many)"` //一對多
}
type Ather struct {
Id int
Name string
User *User `orm:"rel(fk)"` //一對多
}
func init() {orm.RegisterModel(new(User), new(Ather))
}
~~~
3、多對多
* post模型中:Tags \[\]\*Tag`orm:"rel(m2m)"`正向關系,沒有外鍵
* tag模型中:Posts \[\]\*Post`orm:"reverse(many)"`反向關系,沒有外鍵
