今天在用mysql export database model的时候发现这个有趣的问题

在mysql 的 EER model viewer里, 虚线表示的是non-identify relationship, 而实线表示的是identify relationship。 上网一查发现很多人都没搞清楚这两个东西的关系

所以特别写篇博客分享一下。

identify relationship

identify relationship表示的是子表格和母表格之间有很强的联系。 子表格里的每一行都必须和母表格里的某一行相关。

下边是例子:

图中的子表computerbook 和 book的关系就是 identify的, 因为computer book必须是book。

在table里表达identify的关系时,需要子表的primary key的一部分必须在主表中作为 foreign key 且不可以是NULL.

图中的computerbook table的 primary key book_id 也是 book table 的 foreign key

或者说,子表不可以在没有主表的情况下存在。

identify relationship

这个表示的是子表和母表的关系比较弱, 子表可以在母表中存在也可以不在。

下边是例子:

图中publisher 和 book的关系是non-identify.

因为book可以被publish, 也可以不被publish, 所以book 和 publisher 的关系是非强制的。

在数据库中, 表达non-idenfity relationship也是将子表的primary key作为母表中 foreign key, 但是由于关系不强制, 所以母表中的foreign key可以是null

注意publisher_id那行可以为空。

也就是说, publisher和 book是独立存在的,没有什么必须依存的关系。

mysql indentify_Database 中 identify relationship 和 non-identify relationship的区别相关推荐

  1. mysql compact_在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC 有什么区别?

    In MySQL InnoDB, what is the difference between COMPRESSED, COMPACT and DYNAMIC for ROW_FORMAT? What ...

  2. hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别

    概述 Mysql数据库replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与i ...

  3. bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...

    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...

  4. mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...

  5. mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速

    有没有一种很好的方法来删除很多记录而不会减慢网站的速度? 我需要从没有索引和主键的MySQL表中删除数百万条记录.我阅读了SO和网上的各种教程,基本策略是限制删除查询,在删除之间休眠一两秒钟,然后重复 ...

  6. 在MySQL数据库中,这4种方式可以避免重复的插入数据!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:小小猿爱嘻嘻 wukong.com/question/674 ...

  7. MySQL数据库中默认事务隔离级别是?

    MySQL数据库中默认事务隔离级别是? 事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到 ...

  8. Mysql 事务中Update 会锁表吗?

    Mysql 事务中Update 会锁表吗? 两种情况: 1.带索引 2.不带索引 前提介绍: 方式:采用命令行的方式来模拟 1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开 ...

  9. echarts导入mysql数据库_Echarts最新:Django中从mysql数据库中获取数据传到echarts方式_爱安网 LoveAn.com...

    关于"Echarts"的最新内容 聚合阅读 这篇文章主要介绍了基于vue+echarts 数据可视化大屏展示的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随 ...

  10. mysql 去掉日期.0_简单介绍MySQL数据库中日期中包含零值的问题

    下面小编就为大家带来一篇浅谈MySQL数据库中日期中包含零值的问题.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 默认情况下MySQL是可以接受在日期中插入0值,对于现 ...

最新文章

  1. MySQL 5.7 基于GTID的半同步复制
  2. linux编译libevent
  3. php获得可靠的精准的当前时间 ( 通过授时服务器 )
  4. 解决WARN TaskSchedulerImpl: Initial job has not accepted any resources;
  5. [洪流学堂]Hololens修改图标icon
  6. CheckBox复选框控件
  7. Spark SQL将rdd转换为数据集-以编程方式指定模式(Programmatically Specifying the Schema)
  8. 单链表---建立基本学生信息管理系统
  9. 为Linux安装虚拟PDF打印机
  10. matlab中断路器怎么表示什么,断路器符号及含义是什么(图文)
  11. Shopify卖家:EDM营销就要搭配SaleSmartly,轻松搞定转化率
  12. 国科大图数据管理与分析课程项目gStore实验报告
  13. 【HZHE004】黄子涵学习Echarts
  14. php只取时间的下士_PHP获取各种起止时间
  15. 计算多边形(polygon)面积的算法原理和python实现
  16. 带空格直角三角形图案
  17. Rpgmakermv(38)MOG_Theatrhythm
  18. 风控模型中的KS指标
  19. 如何为你的 Windows 应用程序关联一种或多种文件类型
  20. 【天光学术】民法学论文:从税收法定主义看我国税收立法之不足【开题报告 硕士研究生毕业论文】

热门文章

  1. win7计算机如何进入管理员权限,win7电脑怎样获得管理员权限
  2. 古月居ROS入门——话题、Publisher、Subscriber
  3. 计算机网络技术之局域网
  4. 智能红外遥控器(四):手机蓝牙控制格力风扇康佳加湿器
  5. 1. 遥控器-华科尔Devo7e 改造成为支持 dsm2/dsmx 的多制式遥控器
  6. 转行做Linux运维工程师,简历
  7. 判断一个数字是不是素数
  8. 《指弹:November.28th》
  9. 检查网络端口是否正常
  10. 谷歌雅虎新闻大战-两种路线的PK