大家好,又见面了,我是你们的朋友全栈君。
一、简介
我们在做数据库设计的时候经常需要系统性的去认识系统涉及到的全部对象,以及对象间的相互关系,如果系统复杂的话,如果不借助合适工具的话,到最后设计出来的数据库肯定会存在或多或少的问题,不过前辈们早就遇到过这类问题,并提供了具体的解决方案,那就是本文要讲的ER图(Entity Relationship Diagram),ER图提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。就像数学符号一样,ER图也通过简单的约定俗成的规则来定义各自概念,主要涉及三大概念:
- 实体:数据模型中的数据对象,可以理解为数据表;通过“矩形框”表示实体型,矩形框内写明实体名称;
- 属性:实体所具有的属性,可以理解为数据表中的字段;通过“椭圆图框”表示实体的属性,并用“实心线段”与“实体型”连接起来;属性分为唯一和非唯一,唯一属性(数据表中的主键)用下划线表示。
- 关系:数据对象与数据对象之间的联系,可以理解为数据表与数据表之间的关系;通过”菱形框“表示实体型之间的关系,在框内写明关系,并用”实心线段“与有关实体型连接起来,同时在”实心线段“旁标上联系的类型(1:1,1:n或m:n)。
具体的例子可以通过学生-课程表来观察,逻辑是不是很清晰,添加再多的表也能梳理好之间的关系。
二、问题
- 如何判断实体之间的关系类型?
关系确认需要从正反两个角度去思考,对于两个实体集A和B,观察A中的实体值在B中实体值的对应关系,反之B中实体值在A中实体值的对应关系,如果两者得出的关系一致那就可以确认是这种关系了。例如教师-课程之间的关系,1位教师可以有N门课程,但是每门课程就只有1位教师,从这个角度分析教师-课程之间是1:N的关系。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152056.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...