本章重点介绍数据模型管理中关联类的应用。在DWF中,关联类(Relation Class)用于解决多对多关系的数据存储。关联类本质上也是一个实体类,不同之处在于,关联类描述两个实体类之间的关联关系,通过关联类的属性记录一个来源实体类(左类)和一个目的实体类(右类)之间的关系。本章通过电商平台上的订单到商品的关联类来说明关联类的定义和应用。

1.关联类的理解

举例:电商订单

电商平台上描述一个用户购买商品的清单称之为订单。所以电商平台上就有以下二个实体类:。


表-订单信息

由于不同订单中购买商品的种类和数量不同,订单类无法设定固定数量的商量类,因此购买商品数量不能记录在订单类上。同样道理,同一个商品会被很多客户购买,出现在很多不同客户的订单里,购买数量也不能记录在商品类上。为此建立订单类到商品类的联系,将购买数量记录在这个联系上。参见下图:

图-订单和商品数据结构

使用方法:

2. 基本概念

2.1 关联类

 通过上述网购的例子可以看到,关联类是被常用到数据关系的描述,关联类用于解决多对多关系的数据存储,描述两个实体类之间的关联关系,记录了一个来源实体类(左类)和一个目的实体类(右类)所产生的关系。

 在订单的例子中,订单类可作为来源实体类(左类),商品类可以作为目的实体类(右类)。

 关联类支持了多对多的关系,在电商订单中,一个订单可关联多个商品,一个商品可关联多个订单,用关联类就可完整记录这种关系。

 在DWF中可建立关联类,关联类主要属性见下表。

属性名

显示名

数据类型

长度

是否为空

备注

rightRev

右对象迭代标识

UUID

32



leftClass

左对象类

String

50

记录左类的类名

order

序号

Integer

9



rightClass

右对象类

String

50

记录右类的类名

leftOid

左对象标识

String

32

记录左类绑定的对象oid

rightOid

右对象标识

String

32

记录右类绑定的对象oid

2.2 关联类对象

 关联类对象和实体类不同,关联类对象除自身以外还包含左对象和右对象引用。

 在电商购物例子中,订单类(左类)下的具体订单就是左对象,比如你网购的订单,商品类(右类)的具体商品就是右对象,比如你网购订单购买的商品。

2.3 关联类属性

关联类对象也可以绑定属性,绑定方式同实体类。

很多情况下数量为关联类的属性,在订单例子中,用订单和商品关联类的关系属性—数量number来记录某订单所购买该商品的数量。

 2.4 关联类系统属性

关联类在创建时需要选择左类和右类,这些类只允许从已创建的实体类中选择。每创建一个关联类,系统自动会为其增加12个内置系统属性,其中4(5)个系统属性与左右实体类相关,且这些属性在创建关联对象时自动赋值。

关联类系统属性表

属性名

显示名

数据类型

长度

是否为空

备注
creator创建人UUID32
关联类自身属性
lastModifier最近更新人UUID32
关联类自身属性
rightRev右对象迭代标识UUID32
预留属性
leftClass左对象类String50自动赋值
order序号Integer9

关联类自身属性,预留属性

rightClass右对象类String50自动赋值
leftOid左对象标识String32自动赋值
rightOid右对象标识String32自动赋值
lastModifyTime最近更新时间Date0
关联类自身属性
version版本号Integer10

关联类自身属性,预留属性

createTime创建时间Date0
关联类自身属性
oid全局唯一标识UUID32关联类自身属性

 2.5 工单-零件的关联类

在设备管理的案例中,我们需要在工单中记录维修需要用到零件(可能是若干种零件)及数量,为了完成这个功能,我们需要创建工单到零件的关联类,其中:

 涉及到的实体类为:

 工单到零件关联类

图-工单-零件关联类

1)工单(WorkOrder)实体类中的故障部位(PartOid)是指发生故障的零件,是零件实体类中零件全局唯一标识partOid。

2)零件实体类的partoid,数据类型是UUID,128位二进制数,用于表示数据库表的主键。

3)此时零件的Partoid被应用到了工单实体类中。


3.基本功能

关联类中所涉及的来源实体类(左类)和目标实体类(右类)必须是已经存在的实体类,换言之:在创建关联类之前必须要先完成左类和右类实体类的创建,关联类管理的基本功能包括:

图-关联类管理

4.建模过程

4.1 创建关联类

关联类创建过程:

图-新建关联类

4.2 关联类属性绑定

 与实体类属性绑定一样,关联类创建后也同样需要绑定关联类的属性,关联类的属性通常为数量,关联类属性绑定建模过程:

图-关联类属性绑定

5. 关联类数据导入

对于关联类而言,导入数据的格式要求更严格一些。需要确保导入数据中含有正确的左右类名称和左右类全局唯一标识。类名与相应的实体类名称一致,全局唯一标识也与对应实体类中实例的全局唯一标识相同。

如果需要导入的属性太多,比如设备类,可以通过‘导出模板’按钮批量选择需要导入的属性,DWF会生成一份含有对应属性名称的.xlsx空表格,只需将数据粘贴或通过脚本批量写入到对应列即可。

6.小结

本章介绍了数据模型中关联类的应用背景和关联类的基本概念,关联类解决的是多对多的应用(某父对象也可关联多个子对象,某子对象可关联多个父对象)的关系,关联类的基本概念包括:

其次,介绍了关联类管理的基本功能和基本操作和建模过程:

最后,结合设备管理介绍了工单到零件关联类的应用场景和数据模型。设备管理零件到零件的关联类应用将在第六章数据模型高级中介绍。

7.案例演示

演示视频:新建工单-零件关联类的演示视频。

8.附件