数据建模是DWF的基础模块。DWF数据模型支持多源异构数据库的集中建模能力,同时支持外部数据源的映射,较好地支持了异构数据的管理和集成服务。数据建模可帮助用户实现对属性、类等元数据进行建模,并由DWF平台自动转化为元模型信息代码文件后编译注册到系统,提供运行时所需业务对象。
DWF提供的数据建模特点如下:
- 基于实体类/关联类更加贴近现实场景
- 属性类型突破传统关系数据库,包含:时序数据、文件数据
- 端到端数据模型定制直接对接数据库,免除数据访问的编码负担
- 支持异构数据源数据的映射和接入
为了让读者更好的理解数据模型管理,我们将结合教学案例设备管理的培训进程逐步展开对数据模型管理的介绍,本章只介绍数据模型中属性管理和实体类管理的相关知识点。
数据库的基本概念
为了搞清楚数据模型的概念,先介绍一下数据保存的地方——数据库,根据百度百科的定义,数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库的发展有着悠久的历史,到本书成稿的时间为止,主流数据库类别有关系型数据库和非关系型数据库:
- 关系型数据库:
- 关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。
- 常见的关系型数据库有Oracle,Mysql,SqlServer、PostgreSQl等。
- 非关系型数据库:
- 时间序列数据库
- 键值对数据库
- 文档数据
- 图数据库
随着工业物联网和大数据应用的普及,NoSQL数据库得到了越来越广泛的应用。
上述划分方法仅为了方便读者理解而提出的一种划分,随着计算机技术的发展,数据库的类型还在不断增加,它们之间的界限也并非泾渭分明,有兴趣的读者可以在百科网站上了解数据库的定义和发展历程。
DWF是一种基于关系数据库建立的低代码开发工具,并且可以集成不同的数据类型数据库中的数据,为了让读者更好的理解DWF的数据模型,在这里先从使用的角度简略介绍一下关系数据库的基本概念。
在关系数据库中,核心的概念是表,这里表的概念和我们日常生活中的概念非常类似,如下表所示EMS快递网上下单例子,系统可设置:寄件人信息表、收件人信息表等数据库表结构。
表中含有很多行,每一行代表一个寄件人的信息,每一行中含有很多列(如EMS快递网上下单例子:寄件人姓名、电话、地址列等),在关系数据库中,通过增行、删行、修改列值、查询行的基本操作实现对数据的维护。
寄件人信息(表) | ||||||||
寄件人姓名 | 手机/固话 | 省市区 | 详细地址 | 地址标签 | 物品类型 | 内件规格 | 内件详情 | 物品重量 |
杨文文 | 13901201188 | 北京 | 北京市海淀区唐家岭新城12号楼 | 海淀区 | 文件资料 | 文件袋 | 信件 | 200g |
张建国 | 13651164493 | 北京 | 北京市海淀区北清路16号院 | 海淀区 | 衣服 | 小葙 | 包裹 | 500g |
王建 | 82797105 | 北京 | 北京市通州区 | 通州 | 文件资料 | 文件袋 | 信件 | 200g |
李慧慧 | 13651178896 | 北京 | 北京市西城区南礼士路甲60 | 西城 | 文件资料 | 文件袋 | 信件 | 200g |
王卫华 | 55597026 | 北京 | 北京市通州区达济街9号 | 通州 | 文件资料 | 文件袋 | 信件 | 200g |
刘华 | 88326666 | 北京 | 北京市西城区西直门南大街11号 | 西城区 | 物品 | 大箱 | 包裹 | 5000g |
张泓 | 88326666 | 北京 | 北京市西城区西直门南大街13号 | 西城区 | 物品 | 大箱 | 包裹 | 3000g |
后续章节会分别介绍实体类、关联类
2. 基本概念-实体类
有了关系数据库以后,是不是问题就彻底解决了呢?并不是!回想一下日常的应用,无论是打车、购物、浏览网页还是玩游戏等等这些丰富多彩的界面,展现的并非全是千篇一律的表。那么,一定有某种东西在我们看到的界面和数据库中的数据之间起了作用,我们称之为应用程序。DWF就是用于开发应用程序的工具之一。
那么DWF是怎么做到这一点的,简单来说,DWF给“表”这个千篇一律的概念,套上了一个“包装”,有了这些包装以后,我们就可以把表中一行一行的数据像快递发货一样,通过网络发到界面上,让人操作,这个加上包装的过程在DWF中称为数据建模。
这个加包装的方法有很多,在入门阶段,先介绍:实体类、实体类对象、属性、实体类属性这四个基本概念,以及他们和关系数据库的对应关系,之后在教程里会通过应用开发的深入继续介绍新概念。
2.1 实体类(Entity Class)—表
实体类是具有相同属性业务对象的描述。在DWF中,一个实体类描述一张数据库中的数据表。实体类包括:类名、显示名、前缀。
元素 | 英文名 | 备注 |
---|---|---|
英文名 | ClassName | 类的名称,系统内唯一标识,英文字母,不允许被更改。 |
显示名 | DisplayName | 显示名称,可以用中英文。 |
数据库表前缀 | ZoneName标识 | 记录类的域名,如实体类定制数据库表的默认前缀为CUS。对应数据库表名为:固定标识_前缀_英文名,如实体类的英文名为:Part,则数据库名为:plt_cus_part,其中plt为在DWF系统中定制的实体类的固定标识。 |
2.2 实体类对象(Entity Object)—行
实体类对象是实体类对应的数据表中具体的一行数据,对应数据库中的对象概念。
2.3 属性(Attribute)—列
属性是业务对象某种特征参数的描述。
- 属性是对象特征的抽象。例如EMS快递网上下单例子中收件人信息表中:寄件人姓名、地址、年龄、编号等,每个属性用名称、数据类型、是否为空,以及长度和缺省值等来描述。
- 属性单独存在没有意义,属性和实体类绑定后才能实现应用功能。
属性定义包括:属性名、显示名、数据类型、长度、是否为空、缺省值信息,详见下表。
元素 | 英文名 | 备注 |
属性名 | AttributeName | 属性的名称,系统内唯一标识,不允许再更改 |
显示名 | DisplayName | 属性的显示名称,可中英文书写。 |
数据类型 | ValueType | 如:Integer \ Long \ Boolean \ String \ Date \ UUID \ Double \ Clob \ TimeStamp等,用户也可二次开发扩展数据类型 |
长度 | ValueLength Integer | Integer 默认9 Long 默认20 Boolean 默认1 String默认50,可调整 Date 默认7 UUID 默认20 Double 默认126 Clob 默认1000,可调整 TimeStamp 默认6 timeseries 默认50[String] |
是否为空 | Nullable | 是否为空,勾选表示为空 |
缺省值 | DefaultValue | 属性缺省值 |
2.4 实体类属性(Entity Class Attribute)—表中的列
实体类属性是描述实体类数据的详细信息。用DWF建模工具将实体类和属性建立绑定关系,就可以完成实体类的属性定义;实体类的属性又分为系统属性和自定义属性:
- 系统属性:每创建一个实体类,DWF自动会为其增加8个系统属性,并且自动维护这8个属性,这些属性在创建对象时自动为其赋值。
- 自定义属性:为描述实体类需要自行定义的属性,这些属性与实体类绑定后才能成为实体类的自定义属性,例如:在教学案例设备实体类中的设备名称、设备类型、设备状态、设备图片等都是设备实体类的自定义属性。
下图为教学案例设备管理系统中3个实体类:设备、工单、零件的数据模型:
- 设备实体类:表述设备本身的信息:设备名称、设备状态、设备的经度、设备的维度、工作地点、总故障报警数等。
- 零件实体类:描述组成设备中包含的零部件信息描述,包括:零件名称、零件类别、零件规格、零件材料、零件描述等,其中零件的类型可定义为:产品、部件、零件。
- 工单实体类:描述工单的内容,包括:故障设备、故障部位、工单状态、截至日期等。
图-设备管理实体类
2.5 DWF默认PG数据连接的数据来源
DWF中PG默认数据连接的数据来源包括三种情况:
- 第一:在DWF中定义的实体类和关联类,表明以plt_开头,如在DWF定义的零件表:plt_cus_part;
- 第二:在DWF自带的PG中创建的数据库表;
- 第三:在DWF默认PG数据库中的创建的视图。
2.6 外部数据连接与外部数据
外部数据连接:指非DWF默认数据连接的其他数据连接。
外部数据:是指外部数据连接中的数据,,目前支持:PG、IotDB。
2.7 外部实体类
外部实体类是用来定义已经存在的数据表或视图,即包括以下2种情况:
- 外部实体类可以来源于DWF默认PG数据连接和外部数据连接中的数据表
- 外部实体类也可以来源于DWF默认PG数据连接和外部数据连接中的视图
外部实体类的数据是来自于PG-默认数据连接或外部数据连接的数据表或视图,通过创建外部实体类,用户可以利用这些外部实体类的数据,完成表单定制等其他功能对数据的应用。
注意!
通常情况下,基于数据表创建的外部实体类可以间接修改外部连接的数据,基于视图创建的外部实体类不能修改外部数据连接的数据。
2.8 多源异构数据模式管理
DWF还将提供DW-SchemaN多源异构数据数据模式管理解决方案,利用FDW识别外部数据源的数据,并把要集成的外部数据源的数据映射成默认PG中外部表,解决非“外部数据连接”情况下第三方业务系统数据的集成应用问题,例如:外部实体类可以是来自另外一个业务系统,在ERP系统中维护了库存信息,在PLM系统中,设计人员对零部件的选用时,需要知道该零件的库存情况,此时针对PLM系统来讲,可以把ERP系统中库存信息数据做为外部实体类引入到PLM系统中。后续会有数据集成服务方案的介绍。
3.DWF支持的数据类型和系统属性
3.1 数据类型
在DWF创建实体类后,在数据库中就创建了一个表;表的创建涉及到表体的结构,就是说牵涉到表中的字段数据的格式,因此要对字段的数据类型进行定义,DWF支持的属性类型有以下12类:
类型 | 说明 |
UUID | 128位二进制数,用于表示数据库表的主键 |
Boolean | 布尔开关 |
Integer | 整形 |
Long | 长整型 |
Double | 浮点型 |
String | 字符串 |
Clob | 长字符串。字符大对象类型,能存储比较字符比较大的数据,如能存储复杂的xml或json文件。 |
TimeStamp | 时间戳 |
Date | 日期。与TimeStamp完全相同,目前为了兼容老版本而留存 |
Time | 时间(无日期) |
JSON | JS对象简谱 |
LocalFile | 指向服务器本地文件系统的文件,支持图片、文件、视频、音频类型 |
Timeseries | 时间序列,用于访问时序数据。表示物联网时间序列对象,一般与某个设备的工况象对应。DWF内置IoTDB接口来处理时序数据。 |
3.2 系统属性
在DWF中,一个实体类描述一张数据表,表是由系统属性和自定义属性组成。每创建一个实体类,DWF自动会为其创建8个系统属性,并且自动维护这8个属性,这些属性在创建对象时自动为其赋值:
属性名 | 显示名 | 数据类型 | 长度 | 是否为空 | 描述 |
oid | 全局唯一标识 | UUID | 32 | 否 | 对象的唯一标识,系统自动生成 |
id | 代号 | String | 50 | 否 | 用于方便用户查看和记忆的编号,支持数字与英文字符,默认由系统自动生成,也可自定义 |
owner | 拥有人 | UUID | 32 | 是 | 拥有人,用于锁定对象时标明锁定人的代号 |
currentProcess | 当前流程 | UUID | 32 | 是 | 对象进入流程后的唯一编号 |
creator | 创建人 | UUID | 32 | 是 | 对象的创建人 |
createTime | 创建时间 | Date | 0 | 是 | 创建时间 |
lastModifier | 最近更新人 | UUID | 32 | 是 | 最近更新人 |
lastModifyTime | 最近更新时间 | Date | 0 | 是 | 最近的更新时间 |
建模人员在创建新的实体类时,不需要再单独定义类的全局唯一标识、创建人、创建时间等基础属性,只需要对当前实体个性化的属性进行定义,从而避免了大量重复工作。
到这里也许会有疑问,既然DWF使用PostgreSQL这样的关系数据库,为什么不直接使用数据库的Schema来定义格式信息,而要用实体类的概念来描述数据模型?实际上,DWF每新增一个实体类就会在PostgreSQL数据库中建立一张数据表,每绑定一个属性到实体类上,就会在该实体类对应的数据表上创建一列。而之所以不使用关系数据库的数据格式代替数据模型,是出于以下考虑:
- 第一,当前的数据管理已经不是简单的关系数据库能支持所有应用的时代,不同类型的数据库采用的元数据管理方式不同。我们设计了一致的顶层概念体系来描述数据,有利于系统后续的发展。
- 第二,后续的模型定制功能需要有一致的数据描述,防止出现大量不同概念的交叉,分散开发人员的精力。
4.基本功能
数据建模是DWF的基础模块,在数据模型模块中包含:实体类管理、关联类管理、外部数据连接、外部实体类、属性库管理,本节只介绍实体类的管理、外部数据连接、外部实体类管理、属性库管理,关联类管理内容伴随教学案例设备管理展开介绍。
- 实体类管理: 用DWF创建的业务系统中所用的实体类,进行实体类和属性的绑定。实体类管理包括:”新增实体类“、”删除实体类“、”编辑实体类“、”查看对象“、”导出模板“、”导出数据“、”导入数据“、“从excel创建实体类”功能菜单。其中:
- 查看对象:查看实体类中所包含的数据对象。
- 导出模板:选择实体类,勾选需要导出的该实体类的系统属性和自定义属性,可以将实体类数据格式导出成EXCEl格式的文件。
- 导入数据:点击”导入数据“,选择导入数据的路径,可将所选择的数据项进行导入。
- 导出数据:选择实体类,点击”导出数据“,勾选要导出的系统属性和自定义属性,可将所选择的数据项进行导出。
- 从excel创建实体类 :选择excel文件可完成实体类的创建,并可同时导入excel中的数据。
- 外部数据连接:用于连接外部的数据源(非默认的PG数据源),目前支持数据连接类型有:PG、IotDB。外部数据连接的主要功能包括:
- 新增数据连接:用于创建一个新的数据源连接。
- 删除数据连接:用于删除已连接的数据源。
- 编辑数据连接:用于编辑已经创建的数据连接。
- 测试单个连接:用于测试指定已连接的数据源,可在“连接状态”处查看连接情况。
- 测试所有连接:用于测试所有的数据源连接,可在“连接状态”处查看连接情况。
- 外部实体类管理:用于已连接数据源中存在的表,包括:默认数据源PG已经存在的自建表(不包括用DWF建立的实体类和关联类)和建立的视图和通过外部数据连接的数据源中存在的表,外部实体类管理的主要功能包含:
- 引入外部实体类:用于创建一个新的外部实体类。
- 删除实体类:用于删除指定的外部实体类。
- 编辑实体类:用于编辑指定的外部实体类,修改相关的信息,对引入的数据列进行调整。
- 查看对象:用于查看指定的外部实体类数据对象。
- 属性库管理:用于创建业务系统中所用的属性,属性库管理包括:新增属性、删除属性、编辑属性、查看绑定类。
图-数据模型基本功能
实体类删除
当选择“删除实体类”时,会有“级联删除与此实体类关联的关联类、表单、授权项”的选择出现,在选择时请慎重!
5. 建模过程
5.1 属性库管理
在DWF数据模型中新增属性有2个路径:
- 第1个新增属性路径是:数据模型-属性库管理-新增属性。
- 第2个新增属性路径是:数据模型-实体类管理-新增实体类-编辑实体类-新增属性绑定。
下面是第1个新增属性入口的建模过程:
- 1. 选择“数据模型"管理,点击”属性库管理“ ;
- 2. 在弹出的界面上点击”新增属性“;
- 3. 在弹出新增属性对话框中定义属性,需要输入:属性名(英文)、显示名(中文)、选择属性的数据类型、定义属性的长度、是否为空、缺省值设置;
- 4. 点击“确认”,即可完成了一个属性的创建。
图-新增属性
5.1.1 属性的操作
属性的增删改从以下两个位置实现:
- 属性库 metaattribute
- 类绑定的属性 class2attribute
实体类/关联类相关的系统属性(creator, lastModifier, rightRev, leftClass, order, rightClass, leftOid, rightOid, lastModifyTime, version, createTime, currentProcess, oid, id, owner)不允许修改。
操作 | 属性库 | 类绑定属性 |
---|---|---|
更新 | 只允许修改显示名和默认值 | |
属性的更新不影响所有被绑定类的列 | 只影响当前类的列 | |
新增 | 新增属性到属性库 | 新增属性到属性库,并绑定当前属性 |
查看 | 查看属性库中属性信息 | 查看类绑定的属性信息(显示名/默认值以当前类绑定的属性为准,可能与属性库不同) |
绑定 | 继承当前属性信息 |
5.1.2 关于英文名命名
提醒注意!!!
1. 属性和类的英文名只能包含字母、数字,长度不超过32个字符;属性名首字母必须为字母;
2. 在DWF系统中类和属性英文名不区分大、小写,如系统将:engineerOid与engineeroid视为同一个属性;
3. DWF 系统中所有的英文名需要以
5.2 实体类建模
实体类管理中重点介绍”从excel创建实体类“、”新增实体类“、”数据导入“、”从excel创建实体类“三个功能。实体类建模有2种方式:
- 从excel创建实体类
- 从新增实体类来创建建实体类
5.2.1 从excel创建实体类
在excel中把要创建的实体类和数据整理好,点击excel即可完成实体类创建同时也把excel 中的数据进行导入。execl 整理时第一行为实体类属性英文名,第二行为属性中文名,sheet页签可为实体类名,可以把要创建的实体类整理在不同的sheet页签中,对同时创建多个sheet中实体类,excel模板格式见下图。
图- excel数据模板
从excel创建实体类的过程如下:
- 点击”从excel创建实体类“,弹出对话框,在对话框中有选择excel并上传的功能,选择要导入的excel文件,上传成功获取返回值后,如果返回值正确,将返回值渲染到table中;
- 1.确认实体类英文名,在此处可以对英文名称做修改
- 2.定义实体类的显示名称
- 3.查看对象页面,在表格底部可选着列属性字段类型
- 4.点击”确认“,则自动创建实体类、属性和实体类/属性关联
- 通过实体类管理中的”编辑实体类“查看实体类属性和属性类型是否正确
- 过实体类管理中的“查看对象”检查导入的数据是否完整
图-从excel创建实体类过程
5.2.2 新增实体类
新增实体类后系统会自动产生8个系统属性,系统属性详见本章节的3.2系统属性的内容,实体类与自定义属性绑定有2个路径:新增并绑定属性、现有属性绑定。
- 新增并绑定属性:是在实体类创建后通过新增属性并进行绑定,路径为:数据模型-实体类管理-新增实体类-编辑实体类-新增并绑定属性。
- 现有属性绑定:在实体类创建后与已有的属性进行绑定,路径为:数据模型-实体类管理-新增实体类-编辑实体类-新增属性绑定-选择属性名-现有属性绑定。
新增实体类建模过程:
选择”实体类管理“,点击”新增实体类“,填写实体类的:英文名、显示名,完成实体类的创建,再选择”编辑实体类“:
- 1. 选择 “新增属性绑定“;
- 2. 在右侧放大镜处选择已有的属性,选择”绑定现有属性“进行绑定属性;
- 3. 或在1. 选择”新增属性绑定“后,在左侧对话框完成新增属性定义后,点击”新建并绑定属性“进行属性新增,并进行属性绑定;
- 点击“确认”即可完成新增实体类和属性的绑定。
图-新增实体类
5.2.3 导入数据
进入”数据模型管理“,选择”实体类管理“,数据导入操作骤如下:
- 点击”导入数据”, 弹出对话框,选着要导入的文件,进行导入;
- 弹出导入进度和导入结果,如果导入失败,点击下载失败数据,查看详情;
- 举例说明:输入错误的数据,导入失败,点击下载失败数据查看信息;
- 提示ERROR错误信息;
- 查看导入数据详情描。
图-数据导入
数据模型建立完成后,可以向实体类批量导入数据。数据需要以表格形式存储在.xlsx文件中,列头为属性名。系统属性、允许为空的自定义类属性均可缺省,甚至表格中不需要建立这些属性对应的列,DWF会自动为导入数据的系统属性赋值,没有数据的属性值为空。如果自定义了系统属性,DWF会保留导入数据的内容,比如在零件实体类中,通常把ID作为零件的代号使用:
id | partName | partType | PartSpece | partMaterial | partDesc | partImg |
---|---|---|---|---|---|---|
4100-0001 | 后台支撑架 | 零件 | 20 | 后台支撑架 | ||
4100-0002 | 托轮 | 零件 | 45 | 托轮 |
将上表导入到零部件类,则DWF不会为id属性分配默认值:
createTime | oid | id | ... | creator | partName | partType | PartSpece | partMaterial | partDesc | partImg |
---|---|---|---|---|---|---|---|---|---|---|
2019-10-25T16:24:46.260Z | D5B1521D613D574B8814D080ABC57115 | PA20191009145639241 | 搅拌车 | 产品 | partDesc | |||||
2019-10-25T16:24:46.273Z | 8B17E17E6F71524EB61DFA01B7CC6B38 | PA20191021000445089 | 出料系统 | 系统 | ||||||
2019-10-25T16:24:46.279Z | 995E98A15459C646B6497371B76914C1 | PA20191021001208106 | 支撑滚轮 | 零件 | ||||||
2019-10-25T16:24:46.301Z | 18020CACCBDA1547BABDB5C139AB9C0F | 4100-0001 | 后台支撑架 | 零件 | 20 | 后台支撑架 | ||||
2019-10-25T16:24:46.307Z | A33936A3E079B147907F761220AB5ACF | 4100-0002 | 托轮 | 零件 | 45 | 托轮 |
提醒
需要说明的问题:
1)建立属性后,DWF规定无法对属性名、数据类型、长度进行修改。当用户试图建立相同属性名的属性时,会出现“属性已存在”的提示,可以从右边的“选择属性名”下拉框中搜索需要的属性;如果需要修改当前属性的显示名,可通过”编辑属性绑定“按钮进行修改。
2)同一属性在不同实体类中可以使用不同的显示名,方便建模人员理解它的含义。比如在设备管理教学案例中,出现在工单类和设备类的同名属性partOid,用于存储零部件的全局唯一标识,工单类中,它代表当前工单所对应的故障零部件,设备类中,它代表当前设备的产品结构。在这里,存储的是全局唯一标识而非字符串,是为了能够唯一辨识出设备的组成结构,这些将在后续关联类建模中解释。
3)建立实体类时,无法对存储的具体内容进行限制,比如,零件类别必须是:产品、系统、零件之一,设备类型中填入的零部件ID必须是类型为产品的零部件等,这些输入限制操作将在后续教程中实现。
5.3 新增外部数据连接
用于连接非DWF默认数据源的数据称之为外部数据连接,进入”数据模型"管理,选择”外部数据连接“,新增外部数据连接操作骤如下:
- 1. 选择“数据模型”管理,点击“外部数据连接”;
- 2.选择“新建数据连接”,弹出填写新增数据连接信息填写框;
- 3.填写相关信息:
- 数据连接名称:定义一个外部数据连接的名称;如:中车四方所数据源连接;
- 数据连接类型:目前DWF支持的外部数据连接类型有:关系数据库PG和时序数据库IOTDB,后续会支持更多的数据类型的外部数据库连接;
- 服务器IP:填写服务器的IP;
- 服务器端口:填写服务器端口;
- 登录用户名:填写服务器登录用户名;
- 密码:填写登录密码;
- 数据库名称:定义一个数据库名称;如:ERP系统数据库;
- 描述:填写相关描述。
- 4.点击‘确认“,即可完成新增外部数据连接。
图-外部数据连接
5.4 引入外部实体类
用于连接已经存在的表或视图,将其定义为DWF的实体类称之为引入外部实体类。进入”数据模型“管理,选择”外部实体类“,引入外部实体类建模骤如下:
- 1.进入“数据模型”管理,选择“外部实体类”;
- 2.点入“引入外部实体类”,弹出“引入外部实体类”定义填写框:
- 数据源:选着“默认数据源”
- 数据库表:选择要引入的数据库表
- 英文名:定义所引入表的英文名称;
- 中文名:定义所引入表的中文名称;
- 主键:如果引入的表有主键,系统会自动选择引入表的主键作为外部实体类的主键;如果引入的表没有主键,用户可选择一个属性做主键;
- 导入属性列:选择导入属性列右侧的下拉箭头,选择引入的实体类的部分属性作为引入外部实体类的属性列;
- 显示名:可在显示名处修改引入属性的显示名称。
- 3. 选择“确认”即可完成“引入外部实体类”的定义过程。
图-引入外部实体类
6.小结
本章介绍了数据库的基本概念;介绍了数据模型中实体类、属性的概念,包括:
- 实体类
- 实体类对象
- 属性
- 实体类属性
- 外部实体类
介绍了实体类管理的的基本功能,主要包括:
- 从excel创建实体类
- 新增实体类,绑定属性
- 编辑实体类
- 查看对象
- 导出模板
- 导入数据
- 导出数据
介绍了外部数据连接和外部实体类管理的功能和建模过程。
最后,介绍了教学案例设备管理所涉及的设备、工单、零件3个实体类和作用。
数据模型中的关联类将在第四章数据模型进阶中介绍,第六章数据模型高级将围绕零件到零件的关联类应用展开介绍。
7. 案例演示
根据前文学习案例介绍中的数据结构设计,建立设备类、工单类和零部件类三个实体类,并分别添加如下属性:
注意:所有类默认包含上述8条系统属性,下方列表为系统属性之外,需要额外添加的自定义属性。
- 实体类:设备(Asset)
属性名 | 显示名 | 数据类型 | 缺省值 | 描述 |
assetName | 设备名称 | String | ||
assetType | 设备类型 | String | 如:搅拌车,叉车,拖车等 | |
workHour | 工作小时数 | Integer | 0 | |
installationDate | 安装时间 | TimeStamp | ||
ownerName | 业主名称 | String | ||
locationX | 当前位置经度 | Double | ||
locationY | 当前位置纬度 | Double | ||
workLoc | 工作地点 | String | ||
assetImg | 设备图片 | LocalFile | ||
assetIcon | 设备图标 | String | ||
assetState | 设备状态 | String | 已创建 | 记录当前设备的状态,包括:已创建,使用中,维修中,已报废 |
assetDesc | 设备描述 | String | ||
woCount | 当前工单数 | Integer | 0 | |
mileAge | 总里程数 | Double | 0 | |
alarmCount | 总故障报警数 | Integer | 0 | |
temperature | 温度 | Timeseries | ||
partOid | 部件 | UUID | 记录当前设备对应的类型为产品的零部件的ID |
- 实体类:工单(WorkOrder)
属性名 | 显示名 | 数据类型 | 缺省值 | 描述 |
assetOid | 故障设备 | UUID | 记录当前工单对应的故障设备ID | |
partOid | 故障部位 | UUID | 记录当前工单对应的故障零部件ID | |
groupOid | 负责部门 | UUID | 记录负责当前工单的用户组ID | |
engineerOid | 负责工程师 | UUID | 记录负责当前工单的维修工程师ID | |
woTitle | 工单标题 | String | ||
woDesc | 工单描述 | String | ||
woState | 工单状态 | String | 已创建 | 记录当前工单的状态,包括:已创建,已安装,运行中,维修中,已报废 |
woDeadline | 截止日期 | TimeStamp |
- 实体类:零部件(Part)
属性名 | 显示属性 | 数据类型 | 缺省值 | 描述 |
---|---|---|---|---|
partName | 零件名称 | String | ||
partType | 零件类别 | String | 零件 | 记录当前零部件的类别,包括:产品,部件,零件 |
partSpece | 零件规格 | String | ||
partMaterial | 零件材料 | String | ||
partDesc | 零件描述 | String | ||
PartImg | 零件图片 | LocalFile |
8.附件
数据模型.zip
设备类数据Excel:Asset.xlsx