最近正在做一个购票系统,今天也是来到了数据库设计环节,自己也是尝试的去画了E-R图,不做不知道,一做吓一跳,有一些基础的点竟然都记不起来了,就这个问题,我觉着有必要分享一下,话不多说,上干货!
目录
一.图中各个图形代表的含义
如图所示:
- 长方形表示实体:实体是客观存在的事物,例如用户、商品、订单等待,一个系统是由多个实体组成,他们之间存在着关系和属性。
- 椭圆形表示属性:实体对象拥有的某些品质,比如用户实体拥有的姓名、年龄、性别、电话等等。
- 菱形表示关系:两个实体之间的联系方式,比如用户与商品之间就是购买关系,列车的车次跟车厢就是包含关系,车厢跟座位也是包含关系等等。
- 双实线长方形表示弱实体:如果一个实体对象依赖于某个实体而存在,那么前者就是弱实体,后者为强实体,例如订单实体与商品实体,前者就是弱实体。
- 双实线椭圆形表示多值属性:举个例子,一个用户可以拥有多个手机号码,那手机号码就是多值属性,而性别只能有一个,所以性别就是单值属性。
- 虚线椭圆形表示派生属性:能通过某些方式推导出来的属性,比如年龄就可以通过身份证号推导。
- 双实线菱形表示弱关系:弱关系可以跟弱实体一起出现。
- 单竖线倒三角形表示概化:简单来说就是分门别类,比如商品的类型分为生活用品、非生活用品等等。
- 双竖线倒三角形表示全部概化:跟单竖线倒三角形表示的含义相似,只是多了硬性条件不可扩展。比如,一个商品分为电子类,书籍类 ,那就只能包含这两种。
二.E-R图的举例说明
三.E-R图中的关联关系
关联关系一共有三种:
- 一对一:1对1关系指实体集合A与实体集合B中,A集合的每个实体至多与B中的一个实体有关系,反之亦然,比如一家公司的员工和员工号。
- 一对多关系:1对多关系指实体集合A与实体集合B中,A集合的每个实体可以与多个B集合的实体有关系,比如一个部门可以有多个员工。
- 多对多关系:多对多关系指实体集合A与实体集合B中,A集合的每个实体可以与多个B集合的实体有关系,反之亦然,比如一个用户可以购买多种商品,一种商品也可以被多个用户购买。