理解关系数据库表间的一对一和一对多关系

数据库基础知识

我们已经深入了解了关系数据库的基础知识 ,包括其与关系模型的紧密联系,以及如何通过二维表来存储和检索数据。这些表类似于我们熟悉的Excel表格,其中每一行被称为记录,每一列则被称为字段。字段不仅定义了数据的类型,还指明了该数据是否可以为空(即NULL)。值得注意的是,NULL并非表示数据为0或空字符串,而是意味着该数据在表中不存在。

02表间关系

在关系数据库中,表与表之间必须建立适当的关系,如"一对多"、"多对一"或"一对一",以确保数据能够根据应用程序的需求进行有序组织和存储

◇ 一对一与多对一关系

例如,我们可以创建一个班级表,其中包含ID、名称和班主任等字段,以清晰地反映班级与班主任之间的关联关系。每一行代表一个班级,而一个班级下可能有多名学生,因此班级表与学生表之间的关系为"一对多"。

◇ 示例:班级与学生关系

以下是示例表结构:

  • ID:唯一标识每个班级的编号。
  • 姓名:学生的姓名。
  • 班级ID:与班级表中的ID字段相关联,用于识别学生所属的班级。
  • 性别:学生的性别信息。
  • 年龄:学生的年龄信息。
  1. 小明,班级ID为201M9;

  2. 小红,班级ID为202F8;

  3. 小军,班级ID为202M8;

  4. 小白,班级ID为201F9。

反过来,若我们在学生表中查找到某一行记录,例如ID为1的小明,要进一步确定他所在的班级,只需查看其"班级ID"字段对应的值,如为201,则可在班级表中迅速定位到ID也为201的记录,即小明所在的班级为二年级一班。这种关系表明,学生表与班级表之间存在着"多对一"的联系

◇ 进一步细化:教师表

若我们进一步细化班级表的设置,比如单独设立一个教师表来管理教师信息,那么教师表的结构可能如下:

  • ID:教师的唯一标识;
  • 名称:教师的姓名;
  • 年龄:教师的年龄信息。

这样一来,我们可以通过教师表来关联到具体的班级,从而更清晰地展现学校管理的各个层面

相关推荐
GuWenyue2 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
Miao121314 小时前
某海外住宿平台如何在大规模场景下实现指标一致性:Minerva 指标平台实践
大数据·数据库·人工智能
CodexDave4 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
曾阿伦4 小时前
MongoDB 查询语句备忘手册
数据库·mongodb
一叶龙洲4 小时前
wslg打开Ubuntu24.04默认打开图形界面
linux·服务器·数据库·ubuntu
CCPC不拿奖不改名4 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
爬也要爬着前进6 小时前
redis主从搭建
数据库·redis·缓存
@Mike@6 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
踏月的造梦星球7 小时前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle