前言

项目开发过程中,数据库表会出现很多映射关系,不只有一对多,还有一对多,多对多。则数据库实体间有三种对应关系:一对一,一对多,多对多。

一、实例

一对一关系实例:

一个学生对应一个学号。

一对多关系实例:

一个学生只属于一个班,但是一个班级有多名学生。

多对多关系实例:

一个学生可以选择多门课,一门课也有多名学生。

二、关系处理:

1.一对一:

一对一关系是最好理解的一种关系,在数据库建表的时候可以将学生表的主键放置与学号表里面,也可以将学号表的主键放置于学生表里面。

2.一对多:


班级是1端,学生是多端,结合面向对象的思想,1端是父亲,多端是儿子,所以多端具有1端的属性,也就是说多端里面应该放置1端的主键,那么学生表里面应该放置班级表里面的主键,则只需在 学生表 中多添加一个班级号的ID。

3.多对多:


对于多对多关系,需要转换成1对多关系,那么就需要一张中间表来转换,这张中间表里面需要存放学生表里面的主键和课程表里面的主键,此时学生与中间表示1对多关系,课程与中间表是1对多关系,学生与课程是多对多关系;所以对于多对多表,通过关系表就建立起了两张表的联系!多对多表时建立主外键后,要先删除约束表内容再删除主表内容。
简单来来说就是在两张表之间建立关系表:

数据表的创建(一对多,多对多)相关推荐

  1. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

  2. python数据库建表_mysql数据表如何创建

    在 MySQL 中,可以使用 CREATE TABLE 语句创建表.其语法格式为:CREATE TABLE <表名> ([表定义选项])[表选项][分区选项]; 其中,[表定义选项]的格式 ...

  3. SQLServer数据表的创建

    文章目录 1 SQLServer数据表的创建 1.1 创建数据表的语法 1.2 标识列的特殊说明 1.3 建表举例 1 SQLServer数据表的创建 1.1 创建数据表的语法 create tabl ...

  4. Python框架篇之Django(Models数据表的创建、数据库配置)

    文章目录 一.数据库的配置 二.Models数据表的创建 三.在Pycharm中显示 一.数据库的配置 1. django默认支持 sqlite,mysql, oracle,postgresql数据库 ...

  5. 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

    原文:学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 ...

  6. MySQL数据库与数据表的创建

    MySQL数据库与数据表的创建 文章目录 MySQL数据库与数据表的创建 前言 一.创建数据库 二.使用数据库 三.创建数据表 前言 MySQL的介绍 什么叫数据库: 作用:存储数据,能够长期保存(断 ...

  7. Mysql数据库和数据表的创建和信息更改的常用指令

    文章目录 数据库和数据表的创建和信息更改 后续小实验做准备 一. 关于数据库和数据表的其它操作 1)数据库 ①创建数据库 ②显示目前所有的数据库 ③数据库重命名 2.1 先创建新库: 2.2 使用`R ...

  8. MySQL数据表的创建、查看、插入

    数据表:数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础. 1.首先我们打开一个数据库(这里我打开的是新创建的一个aaa数据库). 打开数据库:use + 数据库名; 2.开始创建一个表 ...

  9. mysql数据表的创建-数据类型

    库建好了,开始要建表了 >建表的语句 一个库中可以存在多个表 具体来看每一张表的情况 以表格为例子 >表格 >主键 一行信息的唯一标识 特点: 非空 唯一 >数据类型 总的分三 ...

  10. SQL基础:数据表的创建

    1. 先选择创建表所在的数据库 2. 创建表 3. 查看表是否创建成功 4. 主键:要求主键列的数据唯一,且不允许为空.主键能够唯一的标识表中的每一条记录,可以结合外键来定义不同数据表之间的关系,并且 ...

最新文章

  1. “高龄”员工如何给家庭保障
  2. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加均值、中位数)实战
  3. Handler消息机制(七):Message的数据结构是什么样子
  4. 异常详细信息: System.Runtime.InteropServices.COMException: 无效的类别字符串
  5. adf435编程_动态ADF列车:以编程方式添加列车停靠点
  6. python 按条件选择行和列数据_小白学数据结构-排序算法Python(冒泡、选择、快速、希尔等等)...
  7. php如何控制用户对图片的访问 PHP禁止图片盗链
  8. python发送邮件-实操记录-发送一封普通的邮箱
  9. Linux系统基础知识
  10. fireFox模拟 post请求、上传插件,火狐浏览器中文postman插件
  11. go学习笔记-包处理
  12. stochastic noise and deterministic noise
  13. 单片机段式LCD驱动教程
  14. 【RSLogix5000】—(1.1)—厂房ControlLogix系统介绍(硬件介绍)——原理
  15. 中兴ZXD2400电源电路图图纸 图纸 线路图不是PCB图
  16. python识别文字坐标_python识别图片上的文字并返回文字在图片中的坐标
  17. 1688图片批量采集技巧
  18. 德国43000人汇聚线上黑客马拉松,齐愿合力干趴病毒
  19. plt.imshow与plt.show区别之交互与阻塞模式
  20. 台式计算机系统错误,联想台式电脑开机提示Error 1962无法正常开机进入系统

热门文章

  1. java 各种数据库连接_JAVA连接各种数据库
  2. import java文件,java 文件夹操作,java文件夹,import java.
  3. 计算机系统高级设置在哪里,Win7系统高级设置在哪里
  4. 第四单元和课程总结:简单的架构设计意识
  5. fetch移动端浏览器兼容问题
  6. linux中 ls |wc -l
  7. CF935D Fafa and Ancient Alphabet 概率dp(递推)
  8. sql 中 ALTER 和 UPDATE 的区别
  9. [转载] 使用异步 I/O 大大提高应用程序的性能
  10. poj3264Balanced Lineup(RMQ)