数据库实体之间的关联关系:一对一、一对多、多对多
数据库实体间有三种关联关系:一对一,一对多,多对多。
一对一实例:一个学生只有个身份证编号。
一对多实例:一个班级有多个学生。
多对多实例:多对多就是双向一对多,一个学生可以选择多门课,一门课也有多名学生。
1.一对多关系处理:
我们以学生和班级之间的关系来说明一对多的关系处理方法。
假设现有基本表学生表(学号,姓名,……),班级表(班级号,备注信息,……)。
方法一:
新增一个关系表,用来表示学生与班级的属于关系,该关系表包含字段(学生号,班级号)。通过学生号与班级号的对应关系表示学生属于的班级。
方法二:
在学生表中新增字段(班级号),该字段作为学生表的外键与班级表中的班级号关联。每一个学生实体在班级号字段的值,表示该学生属于的班级。
小结:一般情况下,一对多关系采用方法二来处理。一对多的两个实体间,在“多”的实体表中新增一个字段,该字段是“一”实体表的主键。
2.多对多关系处理:
在多对多关系中,我们要新增加一个关系表。如在上面示例中,在学生表和课程表的基础上增加选课表来表示学生与课程之间的多对多关系。在选课表中,必须含有的属性有学生号和课程号。(学生号,课程号)这个属性集刚好也就是选课表的关键字。
数据库实体之间的关联关系:一对一、一对多、多对多相关推荐
- Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作
Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: 由于如果只使用一张表存储所有的数据,就会操作数 ...
- 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多
7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...
- SQLAlchemy_定义(一对一/一对多/多对多)关系
SQLAlchemy_定义(一对一/一对多/多对多)关系 目录 Basic Relationship Patterns One To Many One To One Many To Many Basi ...
- mybatis的一对一 一对多 多对多
mybatis的一对一 一对多 多对多 1.表 2.建表语句 order_t表 CREATE TABLE `order_t` ( `id` int(11) NOT NULL, `user_id` in ...
- 数据库一对一 一对多 多对多关系
参考:https://blog.csdn.net/u013144287/article/details/79024130 自己在项目中写的实例: '实体'和'公理'具有多对多关系,即一个实体可以对应多 ...
- Mybatis中的关系映射(一对一,一对多,多对多)
在网上寻了很久,大多数讲关系性的文章都是大篇幅的去将表照搬上来,本来就很生硬,此文就不在讲述关系性映射的具体实现,转而从浅层来讲讲其概念性. 1.1 关联关系概述 在关系型数据库中,多表之间存在着三种 ...
- JPA 一对一 一对多 多对一 多对多配置
1 JPA概述 1.1 JPA是什么 JPA (Java Persistence API) Java持久化API.是一套Sun公司 Java官方制定的ORM 方案,是规范,是标准 ,sun公司自己并没 ...
- day 69-70 一对一 一对多 多对一联表查询
day 69 orm操作之表关系,多对多,多对一多对一/一对多,多对多{类中的定义方法}day691. 昨日内容回顾1. 单表增删改查2. 单表查询API返回QuerySet对象的:1. .all() ...
- Django一对一 ,一对多,多对多
Django 数据库一对多,多对多 目录 app01/models.py app01/views.py app01/urls.py Python_Django/urls.py 目录 app01/mod ...
- 如何创建数据库表之间的关联关系
一对一关联 1.一对一的单向主键关联: 例如两张表:Husband和wife,在数据库中设置彼此的主键id相互关联(少用) 此时在两个实体类中不用添加任何的对象属性 2.一对一的单向外键关联 ...
最新文章
- 著名统计学家Donald B. Rubin:机器是否可以思考甚至具有意识?
- More than Moore的探索
- Juyter notebook 出现“localhost 目前无法处理此请求”
- 全国计算机二级考试vf知识点总结,VF全国计算机等级考试二级公共基础知识点总结.doc...
- 严选前端全栈工程师学习笔记
- 测试人员报BUG的正确姿势
- java文件输入与输出_java文件输入和输出
- java split函数应该注意的问题
- Linux 引导管理器 grub2 使用简介
- InfluxDB-Python 操作实践
- eBPF and IO Visor: The what, how, and what next!
- 非参数假设性检验 Wilcoxon秩和检验 matlab
- 动手学深度学习(三十四)——序列模型
- ISO12233分辨率测试卡分类及功能说明
- 在线JS代码调试工具JSFiddle和JSBin、菜鸟在线编辑器
- Azkaban的安装
- 燃石、泛生子会师纳斯达克,从招股书看异同(文末附IPO招股书)
- 名词用作动词举例_中学文言文词类活用详解:名词活用作动词(一)
- 「中国好SaaS」重装升级,真正以用户视角,发现SaaS好项目
- android点击展开全文,Android显示全文折叠控件使用方法详解