页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

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

关联类的理解

举例:电商订单

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

...

  • 创建关联类:设置关联类名称、指定左类的实体类、指定右类的实体类、属性等;
  • 创建关联类实例:系统自动生成关联类实例的代码,选择左右类的实例,输入属性值。例如选择一个订单,选择该订单需要购买的商品,输入本次购买该商品的数量;
  • 一对多关系:1个左类实例对应n个右类实例,生成n个同类关联类实例,例如同一个订单包含n种商品;
  • 多对一关系:m个左类实例对应1个右类实例,生成m个同类关联类实例,例如同一个商品对应m个订单。

基本概念

(一)关联类

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

...

属性名

显示名

数据类型

长度

是否为空

备注

rightRev

右对象迭代标识

UUID

32



leftClass

左对象类

String

50

记录左类的类名

order

序号

Integer

9



rightClass

右对象类

String

50

记录右类的类名

leftOid

左对象标识

String

32

记录左类绑定的对象oid

rightOid

右对象标识

String

32

记录右类绑定的对象oid

(二)关联类对象

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

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

(三)关联类属性

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

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

(四)关联类系统属性

关联类在创建时需要选择左类和右类,这些类只允许从已创建的实体类中选择。每创建一个关联类,系统自动会为其增加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关联类自身属性

(五)工单-零件的关联类

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

...

信息
title需要说明的问题

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

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

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


基本功能

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

  •   新建关联类:创建一个关联类。
  •   删除关联类:删除关联类。
  •   编辑关联类:编辑关联类,并进行关联类数据的绑定。
  •   导出模板:导出关联类数据模板。
  •   导入数据: 将关联类数据进行导入。

图-关联类管理

建模过程

(一)创建关联类

关联类创建过程:

  •  1. 进入“数据模型”,选择“关联类管理”;
  •   2. 点击“新建关联类”,弹出新建关联类的对话框,输入关联类的:英文名(WorkOrderToPart)、显示名(工单到零件);
  •   3. 选择左类(工单WorkOrder);
  •   4. 输入左类角色(工单);
  •   5. 选择右类(零件Part);
  •   6. 输入右类角色(零件);
  •   7. 点击“确认”,即可完成关联类的创建。

图-新建关联类

(二)关联类属性绑定

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

  • 1. 进入“数据模型”,选择“关联类管理”,点击“编辑关联类”,弹出编辑关联类的对话框;
  •  2.确认左类的角色,此处可以更改左类角色;
  •  3.确认右类的角色,此处可以更改右类的角色;
  •  4.选择“新增属性绑定”,定义属性,该关联类属性为“数量”;
  •  5.点击“确认”,即可完成关联类属性(数量number)的绑定。

图-关联类属性绑定

关联类数据导入

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

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

小结

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

...

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

示例模型包

View filename数据模型进阶.zipheight250