建设邮箱网站,WordPress的黑色,咨询公司注册流程及费用,关于医院建设网站的请示一对一关系 一对一关系比较少#xff0c;一般用于表的扩展例如一张用户表#xff0c;有很多字段那么就可以把它拆分为两张表#xff0c;常用的字段放主表#xff0c;不常用的字段放详情表。 针对用户表来说可以通过user去点出userinfo。 创建表和插入数据
package mainimp…一对一关系 一对一关系比较少一般用于表的扩展例如一张用户表有很多字段那么就可以把它拆分为两张表常用的字段放主表不常用的字段放详情表。 针对用户表来说可以通过user去点出userinfo。 创建表和插入数据
package mainimport (gorm.io/driver/mysqlgorm.io/gorm
)type Teacher struct {ID intName stringAge intGender boolTeacherInfo TeacherInfo
}type TeacherInfo struct {ID intTeacherID intAddress stringHobby string
}func (*Teacher) TableName() string {return teacher
}func (*TeacherInfo) TableName() string {return teacherinfo
}func main() {dsn : root:7PXjAkY!nlRtcp(192.168.11.128:3306)/test?charsetutf8mb4parseTimeTruelocLocaldb, _ : gorm.Open(mysql.Open(dsn), gorm.Config{})db.Debug().AutoMigrate(Teacher{}, TeacherInfo{})var teacherList []TeacherteacherList append(teacherList, Teacher{Name: yanzi,Age: 28,Gender: false,TeacherInfo: TeacherInfo{Address: hangzhou,Hobby: video,},}, Teacher{Name: lucas,Age: 30,Gender: false,TeacherInfo: TeacherInfo{Address: hangzhou,Hobby: reading,},})db.Create(teacherList)}mysql desc teacher;
--------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
--------------------------------------------------------
| id | bigint | NO | PRI | NULL | auto_increment |
| name | longtext | YES | | NULL | |
| age | bigint | YES | | NULL | |
| gender | tinyint(1) | YES | | NULL | |
--------------------------------------------------------mysql desc teacherinfo;
----------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
----------------------------------------------------------
| id | bigint | NO | PRI | NULL | auto_increment |
| teacher_id | bigint | YES | MUL | NULL | |
| address | longtext | YES | | NULL | |
| hobby | longtext | YES | | NULL | |
----------------------------------------------------------mysql select * from teacher;
-------------------------
| id | name | age | gender |
-------------------------
| 1 | yanzi | 28 | 0 |
| 2 | lucas | 30 | 0 |
-------------------------mysql select * from teacherinfo;
-----------------------------------
| id | teacher_id | address | hobby |
-----------------------------------
| 1 | 1 | hangzhou | video |
| 2 | 2 | hangzhou | reading |
----------------------------------- 单单使用take find这些是查询不出teacherinfo的信息的 var t Teacherdb.Take(t)fmt.Println(t)[4.938ms] [rows:-] SELECT count(*) FROM INFORMATION_SCHEMA.table_constraints WHERE constraint_schema test AND table_name teacherinfo AND co
nstraint_name fk_teacher_teacher_info
{1 yanzi 28 false {0 0 }}
想要查询用户详情使用preload var t Teacherdb.Debug().Preload(TeacherInfo).Take(t)fmt.Println(t)[1.226ms] [rows:1] SELECT * FROM teacherinfo WHERE teacherinfo.teacher_id 1
[41.415ms] [rows:1] SELECT * FROM teacher LIMIT 1
{1 yanzi 28 false {1 1 hangzhou video}} 删除 var t Teacherdb.Take(t, 2)db.Debug().Select(TeacherInfo).Delete(t)[3.472ms] [rows:1] DELETE FROM teacherinfo WHERE teacherinfo.teacher_id 2
[60.613ms] [rows:1] DELETE FROM teacher WHERE teacher.id 2