gorm中一对一,多对多关系
1、一对一
: 属于 belongsTo
package main
// belongsTo
type Dog struct { //舔狗gorm.ModelName string}type GirlGod struct { //女神gorm.ModelName string
}func (it *ServiceContext) AutoMigrate() {it.DB.AutoMigrate(&Dog{},&GirlGod{}) //创建这两张表,它们之间没有任何关联
}// ==========================================================================================
// belongsTo
type Dog struct { //舔狗gorm.ModelName stringGirlGodID uintGirlGod GirlGod //舔狗属于女神
}type GirlGod struct { //女神gorm.ModelName string
}func (it *ServiceContext) AutoMigrate() {it.DB.AutoMigrate(&Dog{}) //只创建Dog,因为 Dog belongsTo GirlGod,所以这里会自动创建2张表,但这2张表之间没什么关系
}// ==========================================================================================
// belongsTo
type Dog struct { //舔狗gorm.ModelName stringGirlGodID uintGirlGod GirlGod //舔狗属于女神
}type GirlGod struct { //女神gorm.ModelName string
}func (it *ServiceContext) AutoMigrate() {g := GirlGod{Model:gorm.Model{ID: 1,},Name: "淼淼",}d := Dog{Model:gorm.Model{ID: 1,},Name: "奇奇",GirlGod: g,}it.DB.AutoMigrate(&Dog{}) //只创建Dog,因为 Dog belongsTo GirlGod,所以这里会自动创建2张表,但这2张表之间没什么关系it.DB.Create(&d) // 在 GirlGod{}, Dog{},表中分别创建一条记录 (两个表通过 Dog{} 中的 girl_god_id 字段关联)
}// ==========================================================================================
// has one
type GirlGod struct { //女神gorm.ModelName stringDog Dog // 女神拥有舔狗 has one
}type Dog struct { //舔狗gorm.ModelName stringGirlGodID uint //狗链子被女神牵着
}func (it *ServiceContext) AutoMigrate() {d := Dog{Model:gorm.Model{ID: 1,},Name: "奇奇",}g := GirlGod{Model:gorm.Model{ID: 1,},Name: "淼淼",Dog: d,}it.DB.AutoMigrate(&GirlGod{},&Dog{}) //只创建Dog,因为 Dog belongsTo GirlGod,所以这里会自动创建2张表,但这2张表之间没什么关系it.DB.Create(&g) // 在 GirlGod{}, Dog{},表中分别创建一条记录 (两个表通过 Dog{} 中的 girl_god_id 字段关联)
}
gorm中一对一,多对多关系相关推荐
- 数据库建表-- 一对多/多对一/一对一/多对多 关系
转自: https://blog.csdn.net/zhongshan_c/article/details/8210196 数据库建表-- 一对多/多对一/一对一/多对多 关系 关联映射:一对多 ...
- 什么是数据库中的多对多关系?
什么是数据库建模中的多对多关系?如何在数据库中实现这种关系?本文中的示例将回答这些问题. 多对多关系可能是在数据库中显示的最棘手的关系.因此,我在本文中的第一步将是解释它们是什么.然后,我将继续给你几 ...
- 数据库设计中,多对多关系使用使用逗号分割关联讨论
进公司一个月,发现公司很多人喜欢用逗号分割,去存储其它表的主键,做多对多关联,但存在很多乱用现象.这里对这种方式做了下总结. 在传统数据库设计中,多对多关系存储通常都是用一张中间表来简历两张表的关系. ...
- ssas对数据仓库_SSAS中的多对多关系简介
ssas对数据仓库 In this article, I'm going to explain what many-to-many relationships in SSAS are and how ...
- mysql表中的多对多关系表_「一对多」关系型数据库中一对多,多对一,多对多关系(详细) - seo实验室...
一对多 在关系型数据库中,通过外键将表跟表之间联系在了一起. 一个班级有很多学生,外键维护在学生的一方,也就是多的一方.(在做页面设计的时候,需要把两个表连接到一块查询信息) 建立一个student和 ...
- Laravel中的多对多关系
多对对关系 多对多的关系比一对一和一对多关系稍微复杂些. 如: 一个用户可以选择多门课程,一个课程可以被多个用户选择. 用户表和课程表之间就是一个多对多的关系: 一个用户可以拥有多个角色,一个角色可以 ...
- laravel中的多对多关系详解
一种常见的关联关系是多对多,即表A的某条记录通过中间表C与表B的多条记录关联,反之亦然.比如一个用户有多种角色,反之一个角色对应多个用户.为了测试该关联关系,我们沿用官网的用户角色示例: 需要三张数据 ...
- java中的多对多关系解析_Java中多对多映射关系(转)
多对对的映射,可以用学生和课程进行演示.一个学生可以选择多个课程,一个课程又对应了多个学生 定义学生类 class Stu{ private String name; private String n ...
- java中的多对多关系解析_Java中多对多映射关系
多对对的映射,可以用学生和课程进行演示.一个学生可以选择多个课程,一个课程又对应了多个学生 定义学生类 class Stu{ private String name; private String n ...
- Flask 数据库多对多关系
数据库使用关系建立记录之间的联系.其中,一对多关系是最常用的关系类型,它把一个记录和一组相关的记录联系在一起.实现这种关系时,要在"多"这一侧加入一个外键,指向"一&qu ...
最新文章
- 工业革命前数千年人口经济_我们已经进行了数千年的编程
- Lync 小技巧-46-intranet-共享桌面-internet-网络问题
- python语言入门详解-Python unittest详解一(基础入门)
- Google Protocol Buffer 的使用和原理
- 关于java的JIT知识
- Linux下Oracle 12c的卸载
- kdj超卖_KDJ指标超卖区域划分及交易含义
- Java虚拟机(JVM)面试题大集合
- vim 全局替换_高效操作:vim 快速删除空行和注释
- 注意Chart control 中ispostback 的使用
- 【9.4】socket模拟http请求
- 【问题待解决】自定义控件设计界面报错,编译运行正常
- 基于Laravel+VueJS实战开发WebAPP
- 【Docker】问题汇总
- C语言实现函数调用的三种方法
- 用Python学《微积分B》(序)
- java voip 的sip服务器搭建_SIP协议开源SIP服务器搭建和客户端安装
- ITIL 2011服务管理与认证读书笔记一——IT服务管理与ITIL
- 2021全国电赛H题回顾
- Ubuntu——笔记本插入耳机没有声音的解决方案