一对一的关系比较少,一般用于表的扩展;把常用的字段放在主表,不常用的字段放在详细表里面。
创建相关表与数据信息,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| type User struct { ID uint Name string Age int UserInfo *UserInfo }
type UserInfo struct { UserID uint ID uint Addr string Like string }
DB.AutoMigrate(&User{}, &UserInfo{})
|
1. 添加记录
1 2 3 4 5 6 7 8
| DB.Create(&User{ Name: "你不知道", Age: 8, UserInfo: &UserInfo{ Addr: "天堂", Like: "地狱", }, })
|
2. 查询
1 2 3 4 5 6 7
| var u User DB.Preload("UserInfo").Take(&u) s, _ := json.Marshal(u) fmt.Println(string(s))
{"ID":1,"Name":"你不知道","Age":8,"UserInfo":{"UserID":1,"ID":1,"Addr":"天堂","Like":"地狱"}}
|
3. 删除
1 2 3 4
| var u User DB.Take(&u) DB.Select("UserInfo").Delete(&u)
|