通过E-R理解 主键和外键的关系

简介: 实例 现有课程和教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号。

1.png

实例:现有课程教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号

先上图,本人小白,一边学习一边分享。个人理解
主键:是唯一的,一张表中只能有一个主键,也就是唯一标志符和身份证一样可以准确的查到相对应的数据。
(如E-R图中 课程这个实体中的属性有 课程名称,课程编号 , 课程属性,考试类型 ,选择主键时,课程编号可以唯一标识这门课所以把课程编号设为主键)

外键:主要是用来关联,产生两个表的关系。(如E-R中 教授这个实例 连接 课程表和教师表 有自己的属性 同时通过外键 课程编号,和 工号 使得两个表产生联系 )

将E-R图转换成关系模型。
课程( 课程名称, 课程编号, 课程属性, 考试类型 )
教授 ( 课程编号, 工号, 课序号 )
老师 ( 姓名,工号 ,职称 )

主键和外键的区别是:
1,数据库中设置为主键后,不能为空(null),不能重复,外键是另一个表的主键,可以重复。
2主键是为了更加安全的保护数据,而外键是为了产生关系。
3 主键是唯一的(一个表中只可以设置一个),而外键是可以设置很多个。

相关文章
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
40023 6
Hadoop入门(一篇就够了)
|
数据可视化 Java uml
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
7023 0
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
|
机器学习/深度学习 人工智能 监控
基于YOLOv8的多种水果种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8与PyQt5开发,实现多种水果种类的高效识别。支持图像、视频及摄像头输入,具备批量检测、实时识别与高精度标注功能,模型轻量且部署简便,适用于边缘设备。配套完整源码、数据集与训练教程,开箱即用,适合学习与产业应用。
基于YOLOv8的多种水果种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
7603 14
Spring Boot 3 集成 Spring Security + JWT
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
15219 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
设计模式 Java 程序员
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
本系列文章聚焦于面向对象软件设计中的设计模式,旨在帮助开发人员掌握23种经典设计模式及其应用。内容分为三大部分:第一部分介绍设计模式的概念、UML图和软件设计原则;第二部分详细讲解创建型、结构型和行为型模式,并配以代码示例;第三部分通过自定义Spring的IOC功能综合案例,展示如何将常用设计模式应用于实际项目中。通过学习这些内容,读者可以提升编程能力,提高代码的可维护性和复用性。
3962 1
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
|
Java 编译器 Spring
面试突击78:@Autowired 和 @Resource 有什么区别?
面试突击78:@Autowired 和 @Resource 有什么区别?
17834 7
springboot静态资源目录访问,及自定义静态资源路径,index页面的访问
本文介绍了Spring Boot中静态资源的访问位置、如何进行静态资源访问测试、自定义静态资源路径和静态资源请求映射,以及如何处理自定义静态资源映射对index页面访问的影响。提供了两种解决方案:取消自定义静态资源映射或编写Controller来截获index.html的请求并重定向。
springboot静态资源目录访问,及自定义静态资源路径,index页面的访问
|
关系型数据库 MySQL 数据库
navicat 查看,设计并导出数据库 ER图
navicat 查看,设计并导出数据库 ER图
5072 5
ER图和对应关系模式(只写关键)
ER图和对应关系模式(只写关键)
2252 0