ER图三元联系简介

数据库设计时,遇到三元联系怎样确定,下面做个简单介绍。

一、确定联系

三元联系共 4 种情况:

  1. 1 : 1 : 1
  2. 1 : 1 : N
  3. 1 : M : N
  4. M : N : P

1 : 1 : 1 联系

解释:

  • 一名技术员对于每个项目使用一本手冊
  • 每一本手冊对于每个项目属于一名技术员
  • 一名技术员可能在做多个项目,对于不同的项目维护不同的手冊

1 : 1 : N 联系

解释:

  • 每个员工在一个地点仅仅能被分配一个项目,但能够在不同地点做不同的项目
  • 在一个特定的地点。一个员工仅仅能做一个项目
  • 在一个特定的地点,一个项目能够由多个员工来做

1 : M : N 联系

解释:

  • 一名经理手下的一名工程师可能参与多个项目
  • 一名经理管理的一个项目可能会有多名工程师
  • 做某一个项目的一名工程师仅仅会有一名经理

M : N : P 联系

解释:

  • 一名员工在一个项目中能够使用多种技能
  • 一名员工的一种技能能够在多个项目中使用
  • 一种技能在一个项目中能够被多名员工使用

解释都是从一个实体出发,看向另外两个实体,根据数量关系,进行解释。业务解释通了,ER 图及数据库表设计自然出现

二、三元联系类型的转换

确定其关系外,另一点就是怎样将上面的ER模型关系转换成关系表的形式。

方法:

  1. 若实体间联系是 1:1:1。能够在三个实体类型转换成的三个关系模式中随意一个关系模式的属性中增加另两个关系模式的键(作为外键)和联系类型的属性。
  2. 若实体间联系是 1:1:N。则在 N 端实体类型转换成的关系模式中增加两个 1 端实体类型的键(作为外键)和联系类型的属性。
  3. 若实体间联系是 1:M:N。则将联系类型也转换成关系模式,其属性为 M 端和 N 端实体类型的键(作为外键)加上联系类型的属性。而键为 M 端和 N 端实体键的组合。
  4. 若实体间联系是 M:N:P。则将联系类型也转换成关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性。而键为三端实体键的组合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac自带邮箱导出邮件_如何将电子邮件从Mac Mail导出到Notes应用程序

mac自带邮箱导出邮件Khamosh PathakKhamosh PathakIf you use the Mail app regularly, you’re used to archiving or flagging emails for later. But what if you want to save a particular message for future reference in the Notes app? Well, there’s a work-around…

luogu P3380 【模板】二逼平衡树(树套树)

恭喜你 以分块的姿势通过了此题 #include<cmath> #include<cstdio> #include<algorithm> #define inf (2147483647) using namespace std; const int N5e450; struct FK {int l,r;} K[500]; int n,m,T,sqr,ans,a[N],b[N],fa[N]; void work1(int l,int r,int …

Appium使用Python运行appium测试的实例

Appium使用Python运行appium测试的实例 一&#xff0e; Appium之介绍 https://testerhome.com/topics/8038 详情参考-- https://testerhome.com/topics/8038 Appium是一个移动端的自动化框架&#xff0c;可用于测试原生应用&#xff0c;移动网页应用和混合型应用&#xff0c;且…

ubuntu 任务栏监视器_从系统任务栏监视Google服务

ubuntu 任务栏监视器Are you looking for an app that sits in your System Tray and will notify you when you have new items in your Google accounts? Now you can easily monitor all of your favorite Google services with Googsystray. 您是否正在寻找一个位于系统任…

Java发送邮件(带附件)

实现java发送邮件的过程大体有以下几步&#xff1a; 准备一个properties文件&#xff0c;该文件中存放SMTP服务器地址等参数。利用properties创建一个Session对象利用Session创建Message对象&#xff0c;然后设置邮件主题和正文利用Transport对象发送邮件需要的jar有2个&#x…

google天气预报接口_将天气预报添加到谷歌浏览器

google天气预报接口Are you looking for a quick and easy way to see your local weather forecast in Google Chrome? Then you will definitely want to take a good look at the AccuWeather Forecast extension. 您是否正在寻找一种快速简便的方法来在Google Chrome浏览器…

hive中任意相邻时间段数据获取

通过sql语句获取相邻时段数据不比通过其它编程语言&#xff0c;因为sql里面没有for循环&#xff0c;故在实现时需要增加一份副表数据&#xff0c;这里对该方法做一个记录。背景&#xff1a;获取2017年全年平台用户进出贵州省的次数&#xff08;分为进港次数和出港次数&#xff…

strace命令用法

-tt 在每行输出的前面&#xff0c;显示毫秒级别的时间 -T 显示每次系统调用所花费的时间 -v 对于某些相关调用&#xff0c;把完整的环境变量&#xff0c;文件stat结构等打出来。 -f 跟踪目标进程&#xff0c;以及目标进程创建的所有子进程 -e 控制要跟踪的事件和跟踪行为,比如指…

在谷歌浏览器中自动翻译文本

Do you need a quick and simple way to understand an unfamiliar language while browsing the Internet? Then join us as we take a look at the Auto-Translate extension for Google Chrome. 您需要一种快速简单的方法来浏览Internet时理解一种陌生的语言吗&#xff1f;…

知识点025-服务器的基础优化脚本

2019独角兽企业重金招聘Python工程师标准>>> 脚本是借鉴老男孩培训机构的&#xff0c; 感谢感谢~ mkdir -p /server/scripts cat >> /server/scripts/env.sh <<END #!/bin/bash #author Xiongchao #qq 704816384 #mail 704816384qq.com #selinux off…

PHP实现微信随机红包算法和微信红包的架构设计简介

微信红包的架构设计简介&#xff1a; 原文&#xff1a;https://www.zybuluo.com/yulin718/note/93148 来源于QCon某高可用架构群整理&#xff0c;整理朱玉华。 背景&#xff1a;有某个朋友在朋友圈咨询微信红包的架构&#xff0c;于是乎有了下面的文字&#xff08;有误请提出&a…

微服务实现事务一致性实例

分布式系统架构中&#xff0c;分布式事务问题是一个绕不过去的挑战。而微服务架构的流行&#xff0c;让分布式事问题日益突出&#xff01; 下面我们以电商购物支付流程中&#xff0c;在各大参与者系统中可能会遇到分布式事务问题的场景进行详细的分析&#xff01; 如上图所示&a…

使用ama0实现串口通信_“ AMA”是什么意思,以及如何使用它?

使用ama0实现串口通信BigTunaOnline/ShutterstockBigTunaOnline / ShutterstockThe term “AMA” is a staple of Reddit, and it has spread to the far corners of the internet. But what does AMA mean, who came up with the word, and how do you use it? “ AMA”一词是…

火狐 url 乱码_在Firefox中查看URL作为工具提示

火狐 url 乱码Would you like a way to view link URLs wherever you mouse is located in a webpage rather than using the Status Bar? Now you can do so very easily with the URL Tooltip extension for Firefox. 您是否想通过一种方式而不是使用状态栏来查看链接URL&am…

Juniper SRX防火墙批量导入set格式配置

Juniper SRX防火墙批量导入set格式配置 SRX在进行大量配置时可能会出现一些小问题&#xff0c;可以使用load set terminal命令导入大量set格式的配置。 root# load set terminal[Type ^D at a new line to end input] 输入配置set applications application tcp-1521 protocol …

java虚拟机之内存分配

Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时&#xff0c;Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 JDK1.8之前的堆内存示意图&#xff1a; 从上图可以看出堆内存分为新生代、老年代和永久代。新生代又被进一步分为&#xff1a;Ed…

知道无人驾驶的网络安全有多重要吗?英国政府都决定插手开发了

这样的策略也被解读为&#xff0c;英国政府希望借此抢占未来无人驾驶汽车研发的先机。 相信看过下午我们有关速8中黑科技的文章的朋友们&#xff0c;一定对有关车辆网络安全印象深刻&#xff0c;也足以见得未来无人驾驶时代的网络安全问题有多重要。所以&#xff0c;英国政府决…

linux uniq命令_如何在Linux上使用uniq命令

linux uniq命令Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / ShutterstockThe Linux uniq command whips through your text files looking for unique or duplicate lines. In this guide, we cover its versatility and features, as well as how you c…

解决 display 和 transition 冲突的问题

问题&#xff1a; 既需要“显示、隐藏”’效果&#xff0c;也需要动画效果。此时使用了xxx.style.display "none / block" 之后&#xff0c;我们发现 transition 动画效果就没有了。 解决办法一&#xff1a;用定时器&#xff08;这种方法并不好&#xff09; btn2.on…

win10任务栏和开始菜单_如何将网站固定到Windows 10任务栏或开始菜单

win10任务栏和开始菜单Having quick access to frequently-used or hard to remember websites can save you time and frustration. Whether you use Chrome, Firefox, or Edge, you can add a shortcut to any site right to your Windows 10 taskbar or Start menu. 快速访问…