当前位置: 首页 > news >正文

Gorm(十三)主从表的判断

下面这张“速查表”把 GORM 里所有常见关系的主键、外键、主表/从表一次讲清。
背下来即可 5 秒钟拆任何模型。


速查口诀(先背再往下看)

  1. “外键字段落在谁,谁就是从表”
  2. “被引用的一方就是主表”
  3. “多对多外键在中间表,两边原表都是主表”

  1. 一对多(1 ↔ N)

例子:1 个部门有多名员工

type Dept struct {ID   uintName stringEmps []Employee // 主表:无外键字段
}type Employee struct {ID     uintName   stringDeptID uint // 外键字段 → 从表Dept   Dept
}
角色主键外键字段外键指向
主表DeptID
从表EmployeeIDDeptIDDept.ID

  1. 多对一(N ↔ 1)——本质就是一对多反向看

同上,Employee 仍是从表,判断方式完全一致。


  1. 一对一(1 ↔ 1)

例子:1 用户对应 1 身份证

type User struct {ID   uintName stringCard IDCard `gorm:"foreignKey:UserID"` // 主表
}type IDCard struct {ID     uintNumber stringUserID uint  // 外键字段 → 从表
}
角色主键外键字段外键指向
主表UserID
从表IDCardIDUserIDUser.ID

  1. 多对多(N ↔ N)

例子:学生 ↔ 课程

type Student struct {ID      uintCourses []Course `gorm:"many2many:stu_course"`
}
type Course struct {ID   uintName string
}

中间表 stu_course 由 GORM 自动生成:

角色表名主键外键字段外键指向
主表StudentID
主表CourseID
从表stu_course联合主键(student_id, course_id)student_id / course_idStudent.ID / Course.ID

  1. 自引用(树形,1 ↔ N)

例子:分类树

type Category struct {ID       uintName     stringParentID *uint      // 外键字段 → 自己就是从表Parent   *Category  `gorm:"foreignKey:ParentID"`Children []Category `gorm:"foreignKey:ParentID"`
}
角色主键外键字段外键指向
主表CategoryID
从表CategoryIDParentIDCategory.ID

一句话总结

“外键字段落在谁,谁就是从表;被引用的对面就是主表;多对多外键在中间表。”

http://www.dtcms.com/a/561018.html

相关文章:

  • 从零开始的云原生之旅(十):HPA 完全指南:从原理到实践
  • 注册网站费属于什么费用模板公司
  • MYSQL-多种方法安装部署
  • 做网站要学哪些代码上海资本公司排名
  • 认识多线程:单例模式
  • 深入解析 HarmonyOS 中 NavDestination 导航目标页的生命周期
  • 3、webgl 基本概念 + 绘制线段 + 绘制三角形
  • 【LeetCode热题100(58/100)】单词搜索
  • 旅行社网站模版网页设计六安模板
  • 求解器驱动智能决策新纪元
  • 简单网站制作成品广东省广州市佛山市
  • 使用 TransGPTex 将 LaTeX 英文论文翻译成中文:完整实战教程
  • APIJSON:用JSON自动生成API,告别手写CRUD!【.NET 8 集成案例,也支持JAVA】
  • 网络版本计算器
  • 视频容器(如 MP4)的作用:组织与同步
  • 餐饮加盟网网站建设网站建设案例新闻
  • 梅州站改造高铁站优化方案英语必修三电子版
  • vue 项目中常用的 2 个 Ajax 库
  • 【NX 8.5】【vs2022】二开环境配置
  • HexStrike使用搭建
  • 历史数据分析——云南铜业
  • 金昌市住房和城乡建设局网站兴平网站开发
  • 使用Docker构建Node.js应用的详细指南
  • 微信小程序动态二维码外部实时展示系统
  • 建设银行贵阳银行下载官方网站做网站排名优化有用吗
  • 【软件安全】Linux GDB在软件安全中的概念和应用
  • DashGo零基础入门 纯Python的管理系统搭建
  • 1. 工厂方法模式
  • 【2025 SWPU-NSSCTF 秋季训练赛】jicao
  • 网站建设.龙兵科技做推广的网站那个好