开发人员|ER(实体关系)建模入门指引

编辑导语:产品经理在日常工作中需要掌握一些重要技能,比如本文说到的ER建模,在产品经理业务方面提供实体——关系模型的过程;本文作者详细分享了关于ER建模,我们一起来学习一下。
开发人员|ER(实体关系)建模入门指引
文章插图
ER建模(Entity Relationship Modeling)是产品经理,特别是B端产品经理需要掌握的重要技能,本文将从以下几个方面详细介绍ER建模的基础知识。

  • 什么是ER建模?
  • ER建模对产品经理有什么意义?
  • ER图的基本元素包括哪些?
  • 从产品的角度,如何绘制ER图?
一、什么是ER建模?ER建模(Entity Relationship Modeling),即实体关系建模,是指提炼业务,归纳并设计对应的实体——关系模型的过程。
ER建模最终输出的结果为实体关系图(ERD-Entity Relationship Diagram)。
对产品经理而言,ERD体现了实体、属性以及实体间的联系,抽象出了业务的核心特征;对开发人员来说,实体关系图显示数据库中的实体(表)以及该数据库中的表之间的关系,奠定了整个系统的框架基础。
二、ER建模对产品经理有什么意义?
  • 提升抽象、归纳能力:ER建模从系统的实体出发,要得到一个有意义的实体关系模型,要求我们对业务进行深入分析,从业务流程、业务表象中归纳并抽象出核心的实体。
  • 图形化沟通,提升效率:ER图可以帮助产品经理向开发人员传达系统主要核心实体及其关系,让开发人员准确理解需求,并就合理性、扩展性等问题进行深入沟通。
  • 合理建模,少走弯路:ER建模的好坏,决定了软件产品的扩展性和灵活性;ER建模不准确,有可能导致软件设计缺陷,甚至带来严重的业务问题。
三、ER图的基本元素包括哪些?ER图有三个基本元素,分别是:实体、属性、关系。
1. 实体1)实体的定义以及符号
实际问题中客观存在的并且可以相互区别的事物或者概念称为实体,可以具体到人、对象、概念、事件。
下面举几个例子说明:人(例如学生)、对象(例如发票)、概念(例如简介)、事件(例如考试)。
每个实体本身包含多个实体成员,例如学生是一个实体,具体可能有小明、小王等实体成员。
在ER图中,实体通常使用矩形表示,如下所示:
开发人员|ER(实体关系)建模入门指引
文章插图
2)进阶概念:弱实体与强实体
在众多的实体中,有些实体对另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提,前者就称为“弱实体”。
比如学生家长就是一种弱实体,因为只有学生实体存在,家长实体才会存在。
一般情况下,产品经理只需要能够区分哪些是弱实体就可以了,不一定要在ER图中表现出来。要注意的是,强实体与弱实体的联系只能是1:1或1:N。
在ER图中,弱实体通常使用双线矩形表示,如下所示:
开发人员|ER(实体关系)建模入门指引
文章插图
3)怎么找到实体?
实体最终源于具体的业务,要想找具有业务意义的实体,我们需要回归业务本身,下面提供两种思路,仅供参考:
方式一:思考我们的产品为哪些用户解决了什么问题。
特别是B端产品的设计,往往会涉及比较多的用户角色,可以抽象出一部分实体。
比如,我需要为某设计一个图书馆管理系统,经调研,相关的用户角色以及诉求如下:
开发人员|ER(实体关系)建模入门指引
文章插图
通过以上分析,我们至少可以得出以下实体:借阅者、借阅者账号、图书管理员、图书管理员账号、书籍。
方式二:结合业务流程图去找实体。
这是一种主要的寻找实体的方式,业务流程图往往说明了主要实体之间的交互过程,可以帮助我们快速找到相关的实体。如下图为电商用户的下单流程:
开发人员|ER(实体关系)建模入门指引
文章插图
4)实体有那么多,需要全部都列完吗?
产品经理的实体建模环节,更关注核心实体;一个稍微复杂点的产品,是会涉及到很多个实体的,但就前期的需求分析与业务抽象环节而言,我们仅需要关注几个核心的实体就可以了(往往跟核心业务流程相关),确定了核心实体以及关系,就确定了业务的整体方向。
2. 属性属性是实体所具有的某一个特性,比如电商平台的用户可能有“用户ID”、“昵称”、“性别”等属性。
每个实体至少要有一个唯一属性(也称为主键-Primary Key),用于区分不同的实体成员。