mysql indentify_Database 中 identify relationship 和 non-identify relationship的区别
今天在用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的区别相关推荐
- mysql compact_在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC 有什么区别?
In MySQL InnoDB, what is the difference between COMPRESSED, COMPACT and DYNAMIC for ROW_FORMAT? What ...
- hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别
概述 Mysql数据库replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与i ...
- bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...
- mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争
在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...
- mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速
有没有一种很好的方法来删除很多记录而不会减慢网站的速度? 我需要从没有索引和主键的MySQL表中删除数百万条记录.我阅读了SO和网上的各种教程,基本策略是限制删除查询,在删除之间休眠一两秒钟,然后重复 ...
- 在MySQL数据库中,这4种方式可以避免重复的插入数据!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:小小猿爱嘻嘻 wukong.com/question/674 ...
- MySQL数据库中默认事务隔离级别是?
MySQL数据库中默认事务隔离级别是? 事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到 ...
- Mysql 事务中Update 会锁表吗?
Mysql 事务中Update 会锁表吗? 两种情况: 1.带索引 2.不带索引 前提介绍: 方式:采用命令行的方式来模拟 1.mysq由于默认是开启自动提交事务,所以首先得查看自己当前的数据库是否开 ...
- echarts导入mysql数据库_Echarts最新:Django中从mysql数据库中获取数据传到echarts方式_爱安网 LoveAn.com...
关于"Echarts"的最新内容 聚合阅读 这篇文章主要介绍了基于vue+echarts 数据可视化大屏展示的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随 ...
- mysql 去掉日期.0_简单介绍MySQL数据库中日期中包含零值的问题
下面小编就为大家带来一篇浅谈MySQL数据库中日期中包含零值的问题.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 默认情况下MySQL是可以接受在日期中插入0值,对于现 ...
最新文章
- MySQL 5.7 基于GTID的半同步复制
- linux编译libevent
- php获得可靠的精准的当前时间 ( 通过授时服务器 )
- 解决WARN TaskSchedulerImpl: Initial job has not accepted any resources;
- [洪流学堂]Hololens修改图标icon
- CheckBox复选框控件
- Spark SQL将rdd转换为数据集-以编程方式指定模式(Programmatically Specifying the Schema)
- 单链表---建立基本学生信息管理系统
- 为Linux安装虚拟PDF打印机
- matlab中断路器怎么表示什么,断路器符号及含义是什么(图文)
- Shopify卖家:EDM营销就要搭配SaleSmartly,轻松搞定转化率
- 国科大图数据管理与分析课程项目gStore实验报告
- 【HZHE004】黄子涵学习Echarts
- php只取时间的下士_PHP获取各种起止时间
- 计算多边形(polygon)面积的算法原理和python实现
- 带空格直角三角形图案
- Rpgmakermv(38)MOG_Theatrhythm
- 风控模型中的KS指标
- 如何为你的 Windows 应用程序关联一种或多种文件类型
- 【天光学术】民法学论文:从税收法定主义看我国税收立法之不足【开题报告 硕士研究生毕业论文】