要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。

举例1:学生-课程

  • 学生信息表:一行代表一个学生的信息(学号、姓名、手机号码、班级、系别...)

  • 课程信息表:一行代表一个课程的信息(课程编号、授课老师、简介...)

  • 选课信息表:一个学生可以选多门课,一门课可以被多个学生选择

学号     课程编号
1        1001
2        1001
1        1002

举例2:产品-订单

“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。

  • 产品表:“产品”表中的每条记录表示一个产品。

  • 订单表:“订单”表中的每条记录表示一个订单。

  • 订单明细表:每个产品可以与“订单”表中的多条记录对应,即出现在多个订单中。一个订单可以与“产品”表中的多条记录对应,即包含多个产品。

  • 举例3:用户-角色

  • 多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。

多对多(many-to-many)相关推荐

  1. MyBatis 一对多、多对一的处理~

    目录 1.多对一处理 1.1.打个比方 1.2.实例环境搭建 1.3.目标:查询所有的学生信息以及对应的老师信息 方式一:查询嵌套 方式二:结果嵌套 2.一对多处理 2.1.目标:获取指定老师下的所有 ...

  2. Django框架(十)--常用字段、参数、元信息、多对多关联关系

    一.ORM字段 # AutoField() int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列# IntegerField() ...

  3. Django --ORM常用的字段和参数 多对多创建形式

    1 ORM字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型 ...

  4. 如何使用JPA注解标注多对多的关系

    假设应用场景如下:Teacher与Student是多对多的关系,其中,Teacher类对应teacher表如下: CREATE TABLE `teacher` (   `id` bigint(20) ...

  5. NHibernate从入门到精通系列(7)——多对一关联映射

    内容摘要 多对一关联映射概括 多对一关联映射插入和查询 多对一关联映配置介绍 一.多对一关联映射概括 关联关系是实体类与实体类之间的结构关系,分别为"多对一"."一对一& ...

  6. mysql 多表关联建模_(四)多对多模式 - 数据库模型设计专栏 - CSDN博客

    连载之5 原创:胖子刘(转载请注明出处及作者,谢谢.)(四)多对多模式 多对多模式,也是比较常见的一种数据库设计模式,它所描述的两个对象不分主次.地位对等.互为一对多的关系.对于A表来说,一条记录对应 ...

  7. ORM操作models一对多、多对多关系

    ORM操作 单表.一对多表操作 1 from django.db import models 2 3 4 class UserGroup(models.Model): 5 title = models ...

  8. 关于一对多,多对多的多表查询的控制

    一.一对多 以班级Classes和学生Student为例: 回忆sql语句: //内链接,两种方式效果一样,查询的是两边都有的数据 SELECT c.*,s.* FROM classes c,stud ...

  9. Hibernate annotation多对多配置

    角色(用户组),用户多对多. 角色实体配置: private Set<TAuthUser> users;@ManyToMany@JoinTable(name="t_auth_us ...

  10. 初学者易上手的SSH-hibernate04 一对一 一对多 多对多

    这章我们就来学习下hibernate的关系关联,即一对一(one-to-one),一对多(one-to-many),多对多(many-to-many).这章也将是hibernate的最后一章了,用于初 ...

最新文章

  1. Win7/Win2008下IIS配置Asp站点启用父路径的设置方法
  2. LeCun论战Markus:AI是否需要类似人类的认知能力?
  3. Oracle the network adapter could not establish the connection
  4. SAP AUT10 查看修改记录
  5. 数字时代企业内部如何高效协作?这款工具值得一试
  6. 深度学习CTR模型最全演化图谱 [王喆观点]
  7. 美国研发出第一台计算机的时间,研发世界第一台电脑的核心人物,被美国隐藏35年,只因他是个华人...
  8. FJWC 2019 游记
  9. 公共wifi做家用_如何在公共网络上获得免费的wifi
  10. 《Android源码设计模式》--装饰模式
  11. 计算机科学美国大学专业,美国大学Computer Science 计算机科学专业排名(转)...
  12. 怎么在delphi显示html,如何在Delphi中将简单的RichText转换为HTML标签?
  13. Nearest Common Ancestors(LCA板子)
  14. mysql对sql的支持并不是太好_MySQL数据库优化总结
  15. 复制构造函数与析构函数
  16. SkeyePlayer RTSP/RTMP低延迟播放器源码解析系列之效率优化方案
  17. 华为荣耀黑科技,打造震撼AI智能机
  18. 报错:IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or
  19. ##配置 SEP+RRPP 混合环组网
  20. 【前端】JavaScript基础(二)

热门文章

  1. 使用 intellijIDEA + gradle构建的项目如何debug
  2. OGG之Replicate进程
  3. Linux学习之CentOS(三十)--SELinux安全系统基础
  4. 对makefile中,变量定义中 通配符的理解
  5. InfaSkin Probiotic Ecologic Panda 30 Sachets
  6. 力扣(LeetCode)258. 各位相加
  7. 在谈PHP中的 抽象类(abstract class)和 接口(interface)
  8. chrome浏览器好用的插件
  9. 将switch case转为条件驱动
  10. 瀑布流第二种方式————基于ajax方式