数据库建模软件ERStudio-表关系建模详解
ERStudio是优秀的数据库建模软件,它不仅可以建立表、视图等模型,还可以建立多表间各种关系的模型,另外还可以根据模型生成表到数据库,下面具体讲解一下它的表关系建模。
1. 首先讲一下怎么建立表关系模型。
步骤:(1)点击关系图标。(2)在主表上点击一下。(3)在外键表上点击一下。这样就建立了表关系。
2. 建立表关系的模型如下图。
3. 可以看到上面的表关系图标共有5个,那么它们分别是什么意思呢。下面来详细讲解。
4. 第一个图标:Identifying Relationship。翻译:标识关联。
描述:一对多的关联,主表的主键既是子表的外键也是子表的主键。效果如下。
5. 第二个图标:Non-Identifying, Mandatory Relationship。翻译:非标识强制关联。
描述:一对多的关联,主表的主键是子表的外键,且非空。效果如下。
6. 第三个图标:Non-Identifying, Optional Relationship。翻译:非标识可选关联。
描述:一对多的关联,主表的主键是子表的外键,但可以为空。效果如下。
7.第四个图标:One-to-One Relationship。翻译:一对一关联。
描述:一对一的关联,主表的主键是子表的外键,且可以为空。效果如下。
8. 第五个图标:Non-Specific Relationship。翻译:非特定关联。
描述:多对多的关联,主表与子表没有确定的关联关系。效果如下。
9 . 也许会发现,对于第五个来说,没有什么意义,其实这种情况下,一般是再建立一个关联表,将这两个表关联起来,起到多对多关联的作用。
比如用户表和角色表,它们是多对多关系,我们就会再建一个用户-角色表,这个表里放置用户和角色的联合主键。
下面就再建立一个关联表:user_role,只建表就行,字段就先不加。
10. 我们点击第一个图标:Identifying Relationship,然后先建立user和user_role关联,再建立role和user_role关联。
11. 最后,可以看到,user_role表里自动加入了user的主键和role的主键,起到了联合主键的作用,此为多对多关联。
数据库建模软件ERStudio-表关系建模详解的更多相关文章
- 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解
oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...
- MySQL对数据库数据进行复制的基本过程详解
MySQL对数据库数据进行复制的基本过程详解 这篇文章主要介绍了MySQL对数据库数据进行复制的基本过程,解读了Slave的一些相关配置,需要的朋友可以参考下 复制 复制是从一个MySQL服务器(ma ...
- Skip List(跳跃表)原理详解与实现【转】
转自:http://dsqiu.iteye.com/blog/1705530 Skip List(跳跃表)原理详解与实现 本文内容框架: §1 Skip List 介绍 §2 Skip List 定义 ...
- UML建模语言入门 -- 用例视图详解 用例视图建模实战
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...
- 【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...
- MySQL数据库 字段操作 多表关系(更新中...)
外键 (foreign key) ## 外键 ```mysql # 作者(author):id,name,sex,age,mobile, detail_id # 作者详情(author_detail) ...
- SQL Server时间粒度系列----第8节位运算以及设置日历数据表节假日标志详解
本文目录列表: 1.位运算 2.设置日历数据表节假日标志 3.总结语 4.参考清单列表 位运算 SQL Server支持的按位运算符有三个,分别为:按位与(&).按位或(|).按位异或 ...
- uml中定义的关系详细详解
uml定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. 依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依 ...
- Oracle create tablespace 创建表空间语法详解
CREATE [UNDO] TABLESPACE tablespace_name [DATAFILE datefile_spec1 [,datefile_spec2] ...... ...
- AgileEAS.NET SOA中间件平台/敏捷软件开发平台 and SQL详解
AgileEAS.NET SOA中间件平台/敏捷软件开发平台 http://www.smarteas.net/ SQL详解: http://www.w3school.com.cn/sql/func_d ...
随机推荐
- rabbitmq在centos7下安装
知识预览 一. RabbitMQ队列 二. 事例 三.基于RabbitMQ的RPC 回到顶部 一. RabbitMQ队列 ? 1 2 3 4 5 #消息中间件 -消息队列 - 异步 提交的任务不需 ...
- MVC - 13.验证
1.注解验证-Required-StringLength-Range-Regular. 1.1.验证方式 [Required], [StringLength], [Range], 和 [Regular ...
- echarts官网上的动态加载数据bug被我解决。咳咳/。
又是昨天,为什么昨天发生了这么多事.没办法,谁让我今天没事可做呢. 昨天需求是动态加载数据,画一个实时监控的折线图.大概长这样. 我屁颠屁颠的把代码copy过来,一运行,caocaocao~bug出现 ...
- Rsync+Inotify 搭建实时同步数据
1.安装软件包 # yum install inotify-tools # yum -y install rsync 2.同步机器相互添加信任 [root@host-10-0-100-106 ~]# ...
- OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)
Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...
- HTML5+中动态构建列表并填充数据
部分代码参考demo----<历史上的今天>. 感谢作者的分享,愿好人一生平安,虽然只有两个页面,但是通过这个示例让我学会了5+中如何动态构建列表并填充数据,非常实用. html部分: & ...
- 我的第一篇博客:不用sizeof求int的bit数
我的第一篇博客.. 还不会什么高端的东西就来点基础的. 不用sizeof求int的bit数 //不用sizeof求int的bit数 #include<stdio.h> int main( ...
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Office Keys(思维)
Office Keys time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- UGUI的优点新UI系统三效率高效果好
UGUI的优点新UI系统三效率高效果好 通过对批处理(batching).纹理图集(texture atlasing)和新的canvas组件的支持,新UI系统提供了一个经过优化的解决方案,使得开发者添 ...
- java-多线程-一道阿里面试题分析
这段代码大多数情况下运行正常,但是某些情况下会出问题.什么时候会出现什么问题?如何修正?可见博客 http://yueyemaitian.iteye.com/blog/1387901 1.public ...