在4.2.1的数据模型和4.2.2数据模型中分别介绍了实体类和关联类,本章重点介绍数据模型中关联类的高级应用,即产品结构,产品结构是零件到零件的自关联的关联类一种数据模型,产品结构在工业企业的应用特别普及,无BOM,不产品,可见BOM是多么的重要!
BOM(Bill of Material)物料清单,也就是以数据格式来描述产品结构的文件,是计算机可以识别的产品结构数据文件,BOM使系统识别产品结构,下面我们带读者来了解产品结构BOM。
1.产品结构
在设备管理的教学案例中我们创建了设备、工单、零件三个实体类,零件实体类是对零件属性的描述。
- 零件实体类用于描述零件,包括:零件名称、零件类别、零件规格、零件材料、零件描述、零件图片。
- 零件类别包括:零件、部件、产品。
- 产品:产品是由部件、零件组成的。
- 产品结构(BOM):在应用系统中通常用父件、子件的关系来描述产品结构,即产品BOM来描述产品的装配关系,其中左对象是零件,即父件,右对象也是零件,即子件,产品结构描述的是零件到零件的自关联的关系。
为了帮助读者理解产品结构,我们用NOVA手机产品、搅拌车2个产品来说明产品的组成,即:产品BOM。
例子一:NOVA手机
下图是NOVA手机的产品结构,NOVA手机这个产品,第一层产品结构由屏幕、电池、背板、前置摄像、后置摄像五个部件组成,在第一层的五个部件我们称之为是NOVA手机产品结构第一层子件;其中屏幕这个部件是由线路板和lED等组成,在屏幕这个节点上,屏幕是父件,子件包含了线路板、LED屏等子件组成,通过产品结构的一层层分解,就可以完整描述NOVA手机的产品BOM。见下图:
图-NOVA手机产品结构
例子二:搅拌车产品
下图为教学案例搅拌车设备产品组成。
图-搅拌车产品组成
搅拌车产品第一层产品结构是由底盘系统、液压窗传动系统、搅拌罐体、出料系统等10个部件组成。这10大系统是第一层的产品结构也是搅拌车设备的子件;其中在第二层产品结构上底盘是父件,底盘系统是由下级子件:车架、冲动系统、悬架、转向系统、制动系统组成;在传动系统这个第三层结构中,传动系统是父件,该父件由离合器、液力变扭矩、车轮等组成,在第四层产品结构中,车轮是父件,该父件由外胎、内胎、轮毂、螺栓等子件组成,搅拌车的产品组成就可以一层层进行分解。其中左类我们称之为父件,右类我们称之为子件,见下图为搅拌车产品结构BOM部分的展开图,这个图描述了搅拌车产品零部件之间的装配数量关系。
一层 二层 三层 四层
图-搅拌车产品结构
2. 关联类-产品结构
如果把产品结构进一步抽象,就可以用下图表述产品结构,要记录这样的产品结构,需要建立一个零部件类和零部件到零部件之间的关系类,描述父子件装配关系。通过建立零部件之间的联系,可以形成产品的装配关系结构。图中,构成产品A需要零部件B、C、D各2个,而B和E可以组装出C部件。对于零部件B来说,又可以通过不同数量的F和G来组成。一个父件可能由多个子件组成,而一个子件也可能属于多个父件,如:B可以属于A,B也可以属于C,因此我们无法在零部件类中直接记录它的子件和数量,只能通过记录两个零部件之间的关联来描述这种多对多关系。
图-产品结构示意图
产品结构是零件-零件的零件自关联的关联类的应用,所谓自关联是因为其左类(父件)和右类(子件)都是零件实体类,左对象和右对象都是零件,在设备管理教学案例的数据模型中,我们就创建零件到零件(PaatTopart)的关联类。
- 父件到子件关联类:PaatTopart,用来描述产品的构成,称之为:产品的结构,即BOM。
- 左类(父件):零部件实体类
- 右类(子件):零部件实体类
- 属 性 : 数量
下图为父件到子件关联类(PaatTopart)关联类图。
图-父件到子件关联类
3.教学案例数据模型
下面和读者再全面梳理一下教学案例设备管理系统中的数据模型和数据模型之间的联系,案例中包括:
实体类,3个:零件Part、设备Asset、工单WorkOrder。
关联类,2个:工单-零件workOrderToPart、父件-子件PartToPart 。
下图是设备管理数据模型结构图。
图-设备管理数据模型
下面的表格描述了教学案例数据结构之间的关系,请读者深入理解表格的备注内容,以便大家能更好理解设备管理的数据结构和数据之间的联系。
表-设备管理数据模型关系
序号 | 类名 | 类英文名 | 备注 |
---|---|---|---|
1 | 零件实体类 | Part | 用于描述零件 |
2 | 设备实体类 | Asset | 1.记录设备信息,包括设备编号、类型、照片、安装时间、位置、工作时间等基本状态,还有报修工单总数和对应的零部件结构。 2.在设备表中应用到零件PartOid,用于展示设备的产品结构。 |
3 | 工单实体类 | Workorder | 1.记录工单信息,包括工单编号、标题、问题描述、负责维修的工程师、工单截止时间、工作地点,以及对应的故障设备和故障部位。 2.工单中故障设备用到了设备实体类的assetOid,记录出故障设备。 3.设备与工单之间的关系就是一对多关系,一份工单只针对一台设备,而一台设备可能会产生多份工单,这种情况只需在工单中填上设备assetOid,就不必再建立关联类。 3.工单中故障部位用到了零件实体类的partOid,这个partOid表现在工单表单的表头上。 |
4 | 工单到零件的关联类 | workorderToPart | 1.描述工单和零件的关系,即该工单维修时需要用到的零件及数量;一个工单会使用到多个零件进行维修,而一个零件又会对应多个各工单,工单到零件的关联类就解决了多对多的问题。 2. 工单中维修使用的零件(partOid)和数量用是工单到零件关联类中右对象零件实体类中的零件;教学案例表现在工单表单的下半部分。 |
5 | 零件到零件的关联类 | PartToPart | 1.描述产品结构,记录零件与零件之间的关系,包括父件的编号、子件的编号、对应子件的连接方式与装配数量。 2.产品结构的展示在教学案例中被用到2次,1是在零件管理模块中的“零件结构”表单中被使用,2是在工单管理的“工单管理”表单中被使用。 |
注意
1.一对多的关系,直接用实体类之间增加外建来解决,没有必要用关联类;如案例中:设备和工单之间的通过在工单中增加设备的的外键建立联系,即在工单中填上增加设备AssetOid。
2.多对多的关系:需要关联类来解决,教学案列中工单到零件的关联类中,一个工单可以对多个要用到的维修零件,一个零件可对应多个维修工单,需要用到工单到零件的关联类。另外,描述产品装配关系的产品结构BOM也需要建立:零件-零件的关联类。
4. 建模过程
4.1零件到零件的关联类建模过程
在创建零件到零件的关联类(PartToPart)之前,首先要完成零件实体类(part)的创建,以下为零件到零件关联类的创建过程:
- 1. 进入“数据模型”,选择“关联类管理”,点击“新建关联类”完成父件到子件PartToPart关联类的的建立;
- 2. 点击“编辑关联类”,选择关联类父件到子件“partTopart关联类;
- 3. 确认左类角色;
- 4.. 确认右类角色;
- 5. 绑定关联关系:数量“属性。
图-父件到子件关联类创建
4.2. BOM数据导入
Part2Part.xlsx (包含2个表单:“Part”和“Part2Part”)
关联类数据导入时,需要导入左类表单、关联类表单和右类表单,DWF会自动为左类、右类和关联类分别填写数据。如果左右类已经存在数据,也可以只导入关联表单。但不论哪种方法,关联表单必须填写左右类名称(leftClass, rightClass)和左右类对象的全局唯一标识(leftOid, rightOid)。在这里,我们将实体类(零部件类)和关联类(父件到子件类)的数据合并,导入到关联类模型中,可以看到,数据被分别导入到相应的模型。
!注意:导入时需保证类名、属性名与xlsx文件的表单名(表格左下角页签)、列名的完全一致,大小写也应相同。 |
---|
5.小结
本章通过NOVA手机、搅拌车设备2个产品例子介绍了产品结构BOM的基本概念,在产品BOM中是通过父件和子件的关系来描述产品的装配关系的,产品BOM是关联类零件到零件自关联的应用,请体会以下的概念。
- 用父件、子件的关系来描述产品结构,即产品BOM。
- 关联类可用于描述零件到零件的自关联关系。
- 产品结构中零件到零件之间关系的属性为数量。
- 一个父件可以关联多个子件,一个子件可以关联多个父件,构成多对多的关系。
其次,介绍了零件到零件关联类的建模过程;
最后,介绍了设备管理所涉及到的3个实体类和2个关联类的数据模型和之间的联系,希望读者能够深入理解设备管理数据模型表中对数据之间联系的说明。
6. 案例演示
演示视频为创建父件到子件关联类类
7.附件
产品数据参考:示例数据