不同的软件产品中对于数据对象的命名可能会有差异,除了工作表(Worksheet)以外,可能还有数据库(Database)、数据表(Table)、实体对象(Entity)等,但它们本质上是相同的。
每一个数据对象是一类事物的总体概括,例如员工指的是所有员工的总和。在现实世界里,HR可能会有一个员工花名册——即包含公司所有员工的清单。在员工管理系统中,我们同样会有这样一个清单(List)来存储所有的员工,通常是一张表单,也是我们需要管理的数据对象。
在这个表单界面,通常还会有与之配套的CRUD工具栏(Create-Read-Update-Delete)——即支持用户进行数据新增、数据浏览(包括搜索、筛选、排序等)、数据更新、数据删除等操作。
事物总体中的每一个独立的个体,例如员工花名册里某一个员工的档案信息,就对应表单里的一行记录。除了列表(List)的展示形式以外,大多数信息系统对于每一条行记录,通常又会有记录详情(Details)的展示页。
每一个事物个体又会有具体的特征/属性,例如员工小张的部门为销售部、性别为男、年龄28,部门、性别、年龄都是这个员工的属性特征。在IT系统中,这些属性特征则对应为表单中的不同字段。
总结来说,现实业务数据-->IT信息系统的对照关系如下:
现实业务
|
信息系统
|
举例
|
事物总体
|
数据对象/表
|
员工花名册
|
事物个体
|
行记录/详情页
|
小张
|
事物特征/属性
|
字段
|
小张的(性别、年龄等)
|
从业务数据中提取数据对象
在企业经营管理过程中,会产生许多业务数据,我们可以将它们大致分为四类:
从这四类业务数据入手,能够帮助我们有效地提取应用搭建所需的数据对象。
业务实体
第一类是业务实体。它指的是企业想要持续管理的人、事、物——比如员工、客户、订单、商品。识别实体的最好办法,就是寻找那些可以被归纳、可以被计数的名词。当你说出“所有员工”或“全部订单”时,你其实已经找到了实体。对这些业务实体,可以直接构建对应的数据对象/表单。
业务活动
第二类是业务活动。它是一种围绕实体展开、能够创造价值的动作,典型的业务活动如客户拜访、商品采购、设备保养等。业务活动大多都有一个规律,都是【业务实体+动词】的结构。我们可以通过这个规律,快速识别出企业经营中的业务活动。
对于这些需要管理的业务活动,我们也需要构建对应的数据对象,例如创建《客户拜访记录表》、《设备维保记录表》。
业务审批
第三类是业务审批。业务审批是企业中风险控制的一种管理行为,当一张合同需要多位领导签字,或者一笔报销必须层层确认时,审批就登场了。审批在系统里往往同时包含“被审批的数据”和“审批流转的过程”这两部分信息。
因为我们需要管理“被审批的数据”,所以我们一般需要为这类数据创建数据对象/表单。例如,出于付款业务审批控制的需要,我们应该先创建付款申请单,再基于付款申请单来设计审批流转的过程。
业务清单
最后一类是业务清单。业务清单一般是业务实体、业务活动或业务审批所衍生的数据。比如一个员工拥有多段工作经历,一次维修包含多个维修项目,一个报销有多笔费用明细。梳理业务清单的方法是找不定量,只要数据呈现 0 到 N 的可变数量,它很可能就是业务清单。
对于业务清单,在IT系统中一般也需要单独创建数据对象来管理,通过子表或多条关联的形式,作为其他数据对象的附属明细。
场景巩固练习
最后,我们通过一个小场景,来回顾如何从实际业务中提取数据对象:
MEGA 商贸是一家以办公用品销售为主营业务的公司。上周,员工小张出差拜访了客户王总,并当场签下了订单,购买了多种办公用品。出差返回后,小张提交了本次出差的报销申请,包含交通、住宿、餐饮等若干费用项。
在这个场景中,员工、客户、订单、商品是业务实体,拜访记录是业务活动,报销申请是业务审批,订单中的多条明细、报销单申请下的多笔费用构成了业务清单。最终我们可以提取出以下数据对象:
业务数据类型
|
数据对象
|
业务实体
|
员工
|
|
客户
|
|
订单
|
|
商品
|
业务活动
|
拜访记录
|
业务审批
|
报销申请
|
业务清单
|
订单明细
|
|
费用明细
|
创建数据模型
作为IT信息系统,数据对象之间并非是完全割裂的,而是相互之间存在关联关系。所有的数据对象和对应的属性/字段,加上各个数据对象之间的关联关系,就组成了一个应用的数据模型。数据对象之间的关联关系包括:
我们以销售订单管理为例,来展示数据对象之间不同的关联关系。
-
订单和客户是1对1关联,即1个订单只属于1个客户;订单明细和产品是1对1关联,一个订单明细只引用1个产品。
-
订单和订单明细是1对多关联,1个订单包含多条明细。
-
订单和产品则是多对多关联,即一个订单下可以包含多个产品,一个相同的产品也可能存在多个订单里(多次下单)。这种情况下,订单和产品不直接关联,而是通过订单明细作为中间表单,间接实现了订单和产品之间的多对多关联。
我们可以使用ER图(Entity Relationship Diagram)来描述数据模型。但作为图形化的表达方式,ER图有时会受限于页面空间,而无法展示所有字段。因此,我们建议可以用其他文档工具,比如Excel,来记录每个数据对象详细的字段值。