什么是数据对象

数据对象指是信息系统中的同一类数据,通常以表的形式呈现。它是企业信息系统的基础,系统中常见的数据展示窗口、交互界面、统计报表、业务流程等大多围绕数据对象而展开。
 
例如:
  • 在一个订单管理应用中,我们需要管理客户、联系人、订单、订单明细、产品等数据对象。
  • 在一个员工管理应用中,我们则需要管理员工、部门、出勤、薪酬等数据对象。
 
不同的软件产品中对于数据对象的命名可能会有差异,除了工作表(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对1关联,一个订单明细只引用1个产品。
  2. 订单和订单明细是1对多关联,1个订单包含多条明细。
  3. 订单和产品则是多对多关联,即一个订单下可以包含多个产品,一个相同的产品也可能存在多个订单里(多次下单)。这种情况下,订单和产品不直接关联,而是通过订单明细作为中间表单,间接实现了订单和产品之间的多对多关联。
 
我们可以使用ER图(Entity Relationship Diagram)来描述数据模型。但作为图形化的表达方式,ER图有时会受限于页面空间,而无法展示所有字段。因此,我们建议可以用其他文档工具,比如Excel,来记录每个数据对象详细的字段值。