我正在创建一个数据库来存储有关乐器的信息.我在MySQL工作台中使用EER图来可视化每个表之间的关系.

当我创建多对多(n:m)关系时,会创建一个新表,其中包含新关系中涉及的表的主键.其他关系,如一对多(1:n),刚刚将第二个表的主键作为外键添加到原始键中,并且没有创建额外的表.

例如,我正在尝试创建一种关系,该关系表明1台乐器可以在许多CD上播放,1张CD可以播放许多乐器.

为什么要创建这个额外的表以及它用于什么?

谢谢

解决方法:

该表有许多名称:“映射”表,“间接”表和其他.它是CD与乐器之间关系的纽带.

如果仪器具有CD列,则仪器只能引用CD,反之亦然.

如果您在多行中使用具有不同CD的相同仪器,则会对模式进行非规范化.您需要CD行中的相同关系,并且无法保证.

相反,您可以使用此表来标识CD和乐器之间的关系.在该表中可以多次出现相同的乐器或CD,允许CD属于多个乐器,反之亦然.

使用映射表:

CDs Mappings Instruments

A A E E

B A F F

C C G G

D D G

没有映射表:

CDs

CD Instrument

A E

A F

B null

C G

D G

为清楚起见,我将解释为什么在一对多关系中不需要另一个表.只能与另一个表中的一个实体相关的表可以将此关系存储在一行中.同一项的多行是不必要的.您可以使用映射表,但是“one”项的列必须是唯一的,这使得附加表不必要,因为每个项目只能有一行.

标签:mysql,database,mysql-workbench,relational-database

来源: https://codeday.me/bug/20190624/1281565.html

mysql 多对多建表_mysql – 为什么在多对多关系中创建一个新表?相关推荐

  1. mysql 临时表建索引_使用select中的索引在MySQL中创建一个临时表

    我用CREATE TEMPORARY TABLE SELECT的正确语法摔了一会儿.想出了一些事情,我想与社区的其他人分享答案. 有关该语句的基本信息可以在以下MySQL链接中找到: 有时候,解释规范 ...

  2. mysql 复制表结构到一个新表_MySQL复制表数据或表结构到新表中

    MySQL复制表数据到新表的几个步骤. 1.MySQL复制表结构及数据到新表 CREATE TABLE new_table SELECT * FROM old_table; 2.只复制 MySQL复制 ...

  3. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  4. SQL/MYSQL在CMD命令操作符中创建数据库 、表单并插入数据查看

    SQL/MYSQL数据库 .表单.创建 首先确定你已经安装好了MySQL并且已经配置完毕 ①进入MySQL工作区 方法一找到程序进入并且输入MySQL密码: 方法二: window+r 输入cmd 进 ...

  5. 使用django创建一个单表查询的图书管理系统

    使用django创建一个单表查询的图书管理系统 在settings.py文件中添加(用于连接mysql数据库) DATABASES = {'default': {'ENGINE': 'django.d ...

  6. SQL Server 2017 SELECT…INTO 创建的新表指定到文件组

    SQL Server 2017 SELECT-INTO 创建的新表指定到文件组 原文:SQL Server 2017 SELECT-INTO 创建的新表指定到文件组 SELECT-INTO 在 SQL ...

  7. 创建emp表 oracle,Oracle中创建和管理表详解

    Oracle中创建和管理表详解 更新时间:2013年08月01日 15:44:16   作者: 以下是对Oracle中的创建和管理表进行了详细的分析介绍,需要的朋友可以过来参考下 SQL> /* ...

  8. SQL-33 创建一个actor表,包含如下列信息

    题目描述 创建一个actor表,包含如下列信息 列表 类型 是否为NULL 含义 actor_id smallint(5) not null 主键id first_name varchar(45) n ...

  9. ABAP中创建动态内表的三种方法(转载)

    BAP中创建动态内表的三种方法 第一种: 如果我们需要的动态内表字段或者动态工作区和数据字典中的类型一致,可以直接使用CREATE DATA生成,当然也可以是自定义类型. 比如要产生和数据表MARA结 ...

最新文章

  1. 端到端半监督目标检测框架
  2. python函数速查_Python语法速查: 7. 函数基础
  3. WordPress podPress插件‘playerID’参数跨站脚本漏洞
  4. 共享库中的位置无关代码(PIC)
  5. jdbc mysql 报错 ssl_Mybatis使用JDBC连接数据库报错及解决方案
  6. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode 5 迅速判断回文串的Manacher算法...
  7. c盘清理代码_IntelliJ IDEA 缓存和索引介绍和清理方法(一)
  8. Perl文件处理示例——批量添加Copyright版权信息
  9. PL/SQL 调用JAVA使用UDP发送数据
  10. python学习笔记 程序执行过程 基本数据类型
  11. linux查看内存条pn,内存条,详细教您怎么查看内存条的型号。
  12. chm文件打开文字排版错乱
  13. 如何用cocos2d-x来开发简单的Uphone游戏:(四) 音乐音效 最后的润色
  14. Linux服务器集群系统LVS(一)
  15. 磁盘显示无法访问数据错误循环冗余检查的资料恢复法子
  16. 什么是ISO 21434?给汽车软件开发人员的合规贴士
  17. php获得当前时间差,PHP获取当前时间差8小时的问题
  18. python汽车租赁程序_python数据分析实例:共享单车租用影响因素探索
  19. Jenkins自动化部署-配置项目(下)
  20. 某电商网站的数据库设计(6)——创建查询销售数据的视图

热门文章

  1. mysql threads create_MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图...
  2. Cramer-Rao Lower Bound的推导
  3. 【分治法】输油管道问题
  4. 【蓝桥杯Java_C组·从零开始卷】第四节(附)、河图洛书【九宫格】(卷王必备,不想卷的略过,使用优化暴力破解,与网上莫名其妙的规律不一样)
  5. Hadoop Shell命令详解
  6. JSP影视评价系统JSP影评系统JSP电影评价系统jsp电影评论网站jsp电影管理系统
  7. android区域和gynoid区域,Roux-en-Y胃肠转流术后2型糖尿病患者体脂分泌和胰岛素抵抗的变化...
  8. JAVA 阿里云的OOS文件上传和下载
  9. ps基本操作以及盒子综合案例、圆角边框、盒子阴影、文字阴影
  10. (二)企业微信消息推送