数据库关联映射建表图示(一对多、多对多)

~总结一下数据库的 一对多、多对一、一对一、多对多 关系 以及对应的建表方式~

关联映射:一对多/多对一

存在最普遍的映射关系,简单来讲就如球员与球队的关系;

一对多:从球队角度来说一个球队拥有多个球员 即为一对多

多对一:从球员角度来说多个球员属于一个球队 即为多对一

数据表间一对多关系如下图:

关联映射:一对一

一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。

数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。图示如下:

一对一外键关联:

一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系

关联映射:多对多

多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。

数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。

数据表间多对多关系如下图:

数据库关联映射建表图示(一对多、多对多)相关推荐

  1. 关于使用java程序从excel或者数据库中取出建表规则数据,自动生成数据库建表语句(适用于批量建数据库表)

    公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两 ...

  2. MyBatis 3(4)关联映射:一对一,一对多

    MyBatis 关联映射 MyBatis 中对一对一,一对多的关联映射关系的配置方式是比较简单的,只需要在 XML 实体映射文件中进行相应的简单配置即可: 以下完整示例代码地址:https://git ...

  3. 【从零开始学习Oracle数据库】(1)建表与简单查询

    一.常用数据库软件 大型数据库 Oracle Oracle是著名的Oracle(甲骨文)公司的数据库产品 , 它是世界上第一个商品化的关系型数据库管理系统 , 也是第一个推出和数据库结合的第四代语言开 ...

  4. sql 数据库创建及建表,

    一.创建 1.首先打开SQL SERVER自带的数据库管理工具,从开始菜单中可以找到,如图点击进去: 2.开始连接SQL SERVER服务器,就是我们装好的SQL SERVER 服务器: 3.如图,右 ...

  5. spring boot操作mysql数据库:自动建表,数据添加、查询和修改

    1 mysql自动建表 (1)首先使用IntelliJ IDEA新建spring boot工程,然后在pom.xml中加入mysql的依赖: <!-- MYSQL --><depen ...

  6. 数据库(Mysql)----mysql建表中的约束

    1.主键约束 它能够唯一确定一张表中的一条记录,增加主键约束之后,就可以使得字段不重复而且不为空 create table user(id int PRIMARY KEY,name VARCHAR(2 ...

  7. 2019-7-27 [MySQL] DQL 简单查询[别名/去重/运算] 条件查询 排序查询 聚合查询 分组查询 导出与导入 多表操作[一对多/多对多][创外键 创联合主键 约束 添加 删除 测试]

    文章目录 5 SQL语句(DQL) 5.1DQL准备工作和语法 5.1.1准备工作 5.1.2 DQL语法: 5.2 简单查询 5.2.1 查询所有的商品 5.2.2 查询商品名和商品价格. 5.2. ...

  8. 三分钟带你了解mybatis关联映射(案例分析一对一,多对多)

    ------------------------------------------------原创不易,如若喜欢,请点一点赞吧!----------------------------------- ...

  9. sql语句之多表关系 一对多 多对多

    多表的关系介绍 在实际的开发过程中,项目一定是有多张表的,且这些表之间是都有关系的 表与表之间的关系分类:一对一 一对多 多对多 一对一:A表的一行对应B表的一行,反之也成立,此时,两张表可以合并成一 ...

最新文章

  1. 白天鹅黑天鹅灰天鹅?手把手教你用卷积神经网络搞定识别
  2. grep及正则表达式
  3. Liferay7 BPM门户开发之5: Activiti和Spring集成
  4. python的目的及应用_python Django中的apps.py的目的是什么_python_脚本之家
  5. mybatis 一对一与一对多collection和association的使用
  6. Stream流方法引用
  7. stl vector 函数_在C ++ STL中使用vector :: begin()和vector :: end()函数打印矢量的所有元素...
  8. cv mat保存图片_(七)神秘的Mat
  9. 方法 手写promise_手写Promise类
  10. 前端js日期时间格式转换
  11. 网管软件的致命伤及其合理利用的小技巧(转)
  12. 2016年计算机网络考研真题及解析
  13. 软件_可用rtmp直播地址20200517
  14. 北交大计算机老师夏嘉楠,北京交通大学院系部处文件-馆档网.DOC
  15. Java实现文件管理系统(附带源码)
  16. html div鼠标选中状态,CSS鼠标移动div时如何避免选中div中的文字
  17. 数据库:一条sql语句查询每门课程都大于80分的学生姓名
  18. 【2019-2020春学期】数据库 教学 期末总结
  19. 深圳市住房公积金提取办法
  20. js:身份证号码脱敏(对中间11位号码用*号替换)

热门文章

  1. 华为云mysql怎么玩_初次尝试华为云
  2. Golang gorm 常用新增方法
  3. 在多模块下,使用全局异常处理器的配置和部分pom异常的解决
  4. 企鹅号自媒体如何快速转正,企鹅号怎么过三级
  5. 树莓派开发文档笔记—基础配置
  6. 在控制台打印佛祖图片
  7. Serializable序列化实例
  8. sqlserver根据字段查表_查找sqlserver数据库中,查询某值所表名和字段名
  9. 微信小程序 | 12.生命周期、globalData全局数据
  10. CPU GPU爆显存