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

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

1.png

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

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

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

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

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

相关文章
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
38733 5
Hadoop入门(一篇就够了)
|
人工智能 搜索推荐 算法
【推荐系统】UserCF(基于用户的协同过滤)(理论+图解+代码实践)
【推荐系统】UserCF(基于用户的协同过滤)(理论+图解+代码实践)
3007 0
【推荐系统】UserCF(基于用户的协同过滤)(理论+图解+代码实践)
|
数据可视化 Java uml
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
6759 0
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
|
机器学习/深度学习 人工智能 监控
基于YOLOv8的多种水果种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8与PyQt5开发,实现多种水果种类的高效识别。支持图像、视频及摄像头输入,具备批量检测、实时识别与高精度标注功能,模型轻量且部署简便,适用于边缘设备。配套完整源码、数据集与训练教程,开箱即用,适合学习与产业应用。
基于YOLOv8的多种水果种类识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
如何绘制PAD图和N-S图(详细步骤)
如何绘制PAD图和N-S图(详细步骤)
3817 0
|
设计模式 Java 程序员
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
本系列文章聚焦于面向对象软件设计中的设计模式,旨在帮助开发人员掌握23种经典设计模式及其应用。内容分为三大部分:第一部分介绍设计模式的概念、UML图和软件设计原则;第二部分详细讲解创建型、结构型和行为型模式,并配以代码示例;第三部分通过自定义Spring的IOC功能综合案例,展示如何将常用设计模式应用于实际项目中。通过学习这些内容,读者可以提升编程能力,提高代码的可维护性和复用性。
3739 1
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
|
存储 设计模式 测试技术
了解三层架构:表示层、业务逻辑层、数据访问层
了解三层架构:表示层、业务逻辑层、数据访问层
8252 0
|
关系型数据库 MySQL 数据库
navicat 查看,设计并导出数据库 ER图
navicat 查看,设计并导出数据库 ER图
4537 5
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
75380 5
详解HTTP四种请求:POST、GET、DELETE、PUT