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-表关系建模详解的更多相关文章

  1. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  2. MySQL对数据库数据进行复制的基本过程详解

    MySQL对数据库数据进行复制的基本过程详解 这篇文章主要介绍了MySQL对数据库数据进行复制的基本过程,解读了Slave的一些相关配置,需要的朋友可以参考下 复制 复制是从一个MySQL服务器(ma ...

  3. Skip List(跳跃表)原理详解与实现【转】

    转自:http://dsqiu.iteye.com/blog/1705530 Skip List(跳跃表)原理详解与实现 本文内容框架: §1 Skip List 介绍 §2 Skip List 定义 ...

  4. UML建模语言入门 -- 用例视图详解 用例视图建模实战

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...

  5. 【UML 建模】UML建模语言入门 -- 用例视图详解 用例视图建模实战

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . 一. 用例视图概述 用例视图表述哪些 ...

  6. MySQL数据库 字段操作 多表关系(更新中...)

    外键 (foreign key) ## 外键 ```mysql # 作者(author):id,name,sex,age,mobile, detail_id # 作者详情(author_detail) ...

  7. SQL Server时间粒度系列----第8节位运算以及设置日历数据表节假日标志详解

    本文目录列表: 1.位运算 2.设置日历数据表节假日标志 3.总结语 4.参考清单列表   位运算   SQL Server支持的按位运算符有三个,分别为:按位与(&).按位或(|).按位异或 ...

  8. uml中定义的关系详细详解

    uml定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. 依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依 ...

  9. Oracle create tablespace 创建表空间语法详解

    CREATE [UNDO]  TABLESPACE tablespace_name          [DATAFILE datefile_spec1 [,datefile_spec2] ...... ...

  10. AgileEAS.NET SOA中间件平台/敏捷软件开发平台 and SQL详解

    AgileEAS.NET SOA中间件平台/敏捷软件开发平台 http://www.smarteas.net/ SQL详解: http://www.w3school.com.cn/sql/func_d ...

随机推荐

  1. Binary Tree Preorder Traversal——经典算法的迭代求解(前序,中序,后序都在这里了)

    先序遍历,用递归来做,简单的不能再简单了.代码如下: (以下仅实现了先序遍历,中序遍历类似,后序遍历和这两个思路不一样,具体详见Binary Tree Postorder Traversal) /** ...

  2. Python安装scikit-learn包

    我先是按照网上说的下载了个setuptools,然后直接用这个工具去安装,可是安装scikit-learn包的时候确老是有错误,也不知道错误是啥,所以就不用setuptools来安装了. 我直接下载了 ...

  3. 智能社官网顶部导航实现demo

    从智能社的blue老师公开课中学习到了很多,在此表示感谢. 这个导航很好玩,于是就想实现一个. html <div id="box"> <ul> <l ...

  4. BZOJ 2588: Spoj 10628. Count on a tree-可持久化线段树+LCA(点权)(树上的操作) 无语(为什么我的LCA的板子不对)

    2588: Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 9280  Solved: 2421 ...

  5. java 中的try catch在文件相关操作的使用

    import java.io.CharConversionException; import java.io.FileNotFoundException; import java.io.FileRea ...

  6. 牛刀小试之Django二

    model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行 ...

  7. Luogu P2016 战略游戏(树形DP)

    题解 设\(f[u][0/1/2]\)表示当前节点\(u\),放或不放(\(0/1\))时其子树满足题目要求的最小代价,\(2\)表示\(0/1\)中的最小值. 则有: \[ f[u][0]=\sum ...

  8. 洛谷——P1626 象棋比赛

    P1626 象棋比赛 题目描述 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加两场对弈,最少参加零场对弈.每个人都有一个与其他人不相同的等级(用一个正整数来表示). 在对弈中,等级高 ...

  9. shell 倒引号

    `command` 倒引号 (backticks) 在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行.要处理这种情况,我们得用倒单引号来做. fdv=`date +%F ...

  10. 【BZOJ 2212】【POI 2011】Tree Rotations

    http://www.lydsy.com/JudgeOnline/problem.php?id=2212 自下而上贪心. 需要用权值线段树来记录一个权值区间内的出现次数. 合并线段树时统计逆序对的信息 ...