ER图简介以及举例

ER图即实体关系模型,可以辅助进行数据库表设计。通过如下图标来描述实体关系之间的关系,然后通过ER图来转换为数据库的表结构。其中:

  • 长方形: 实体,对应一张实体,最终转化为一张数据库表。
  • 菱形:关系,一般用动词描述,在多对多关系中可以转换为一张表。
  • 椭圆: 属性,实体或者关系包含的属性,最终将对应表中的一列。

实体和属性比较简单,我们不多说,下边来看一下关系:

小技巧:对于确定关系的时候,请从左向右来描述一遍,然后再从右到左描述一遍来看一下。

  • 1对1

1对1关系比较简单,比如学生以及学生身份证号就是一对一的关系,那么只需要简历一张表即可。

  • 1对n

请看如下关系,学生和来源城市之间的关系。使用上述小技巧,来试一下,“学生来源于一个城市,一个城市可以为多个学生的来源”,所以学生对一个城市,一个城市对应多个学生,如图所示。

1对多关系可以转换为两张表,通过在“多”这侧添加“1”侧的唯一键来关联起来,即在学生表添加城市ID(city_id)来关联。上图转换为下边两张表“学生表”和“城市表”。

学生表:

城市表:

  • n对n

请看如下关系,学生和课程之间的关系。“一个学生需要学习多门课程,一门课程有许多学生学习”,所以一个学生对多个课程,一个课程对应多个学生,如下图所示。

多对多关系需要转化为至少三张表,两个实体表和一个关系表,关系表存储两个实体的对应关系,存储两个实体表的键即可。转化后的表为:学生表、课程表、学生课程表。

学生表:

课程表:

有了上边两张表,那么我们的关系表就咋办呢?比如我们让张三学习一下这两门课程。学生课程表如下:

OK,到此E-R图基本上就是这样了,按照标准来说,我们需要给实体加上属性,但是如果把属性都画上图会很乱,所以一般不会画出属性。对于属性还有个主键的问题,就是在属性加下划线即可,不再演示。关于其他问题以后再跟新这篇文章。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注