ER图主要是用于表示实体,属性,和关系的图像,通常用于描述数据库的数据及其之间的关系

ER图核心概念

ER 图(Entity-Relationship Diagram)是描述数据库概念模型的核心工具,核心包含三大要素:

  • 实体(Entity):客观存在的事物(如用户、订单),用矩形表示。
  • 属性(Attribute):实体的特征(如用户姓名、订单金额),用椭圆形表示。
  • 关系(Relationship):实体间的关联(如用户下单),用菱形表示。

ER图中三种关联的联系

一对一(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系

例如一个人只能有一个身份证号,是一一对应的
一对n(1:n):1对多关系是指实体集A与实体集B中至少有n(n>0)个实体有关系
例如一个人可以有多个邮箱,但是一个邮箱只能属于一个人
多对多(m:n):多对多关系是指实体集A与实体集B中至少有n(n>0)个实体有关系
例如一个人可以加入多个组织,一个组织也可以有多个成员

ER图绘制

一对一(1:1):组织 & 用户(法定负责人)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
erDiagram
组织 {
int org_id PK
varchar org_name
varchar address
}

用户 {
int user_id PK
varchar username
varchar phone
}

组织 ||--|| 用户 : "法定负责人"

一对多(1:N):组织 & 活动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

erDiagram
组织 {
int org_id PK
varchar org_name
}

活动 {
int activity_id PK
varchar activity_name
date start_time
int org_id FK
}

组织 ||--o{ 活动 : "发起"

多对多(M:N):用户 & 活动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
erDiagram
用户 {
int user_id PK
varchar username
varchar phone
}

活动 {
int activity_id PK
varchar activity_name
date start_time
}

用户活动 {
int user_id FK
int activity_id FK
date sign_up_time
varchar status
}

用户 }o--o{ 活动 : "报名参加"
用户 ||--|| 用户活动 : "关联"
活动 ||--|| 用户活动 : "关联"