...
表中含有很多行,每一行代表一个寄件人的信息,每一行中含有很多列(如EMS快递网上下单例子:寄件人姓名、电话、地址列等),在关系数据库中,通过增行、删行、修改列值、查询行的基本操作实现对数据的维护。
寄件人信息(表) | ||||||||
寄件人姓名 | 手机/固话 | 省市区 | 详细地址 | 地址标签 | 物品类型 | 内件规格 | 内件详情 | 物品重量 |
杨文文 | 13901201188 | 北京 | 北京市海淀区唐家岭新城12号楼 | 海淀区 | 文件资料 | 文件袋 | 信件 | 200g |
张建国 | 13651164493 | 北京 | 北京市海淀区北清路16号院 | 海淀区 | 衣服 | 小葙 | 包裹 | 500g |
王建 | 82797105 | 北京 | 北京市通州区 | 通州 | 文件资料 | 文件袋 | 信件 | 200g |
李慧慧 | 13651178896 | 北京 | 北京市西城区南礼士路甲60 | 西城 | 文件资料 | 文件袋 | 信件 | 200g |
王卫华 | 55597026 | 北京 | 北京市通州区达济街9号 | 通州 | 文件资料 | 文件袋 | 信件 | 200g |
刘华 | 88326666 | 北京 | 北京市西城区西直门南大街11号 | 西城区 | 物品 | 大箱 | 包裹 | 5000g |
张泓 | 88326666 | 北京 | 北京市西城区西直门南大街13号 | 西城区 | 物品 | 大箱 | 包裹 | 3000g |
2. 基本概念-实体类
有了关系数据库以后,是不是问题就彻底解决了呢?并不是!回想一下日常的应用,无论是打车、购物、浏览网页还是玩游戏等等这些丰富多彩的界面,展现的并非全是千篇一律的表。那么,一定有某种东西在我们看到的界面和数据库中的数据之间起了作用,我们称之为应用程序。DWF就是用于开发应用程序的工具之一。
...
实体类是具有相同属性业务对象的描述。在DWF中,一个实体类描述一张数据库中的数据表。实体类包括:类名、显示名、前缀。
元素 | 英文名 | 备注 |
---|---|---|
英文名 | ClassName | 类的名称,系统内唯一标识,英文字母,不允许被更改。 |
显示名 | DisplayName | 显示名称,可以用中英文。 |
数据库表前缀 | ZoneName标识 | 记录类的域名,如实体类定制数据库表的默认前缀为CUS。对应数据库表名为:固定标识_前缀_英文名,如实体类的英文名为:Part,则数据库名为:plt_cus_part,其中plt为在DWF系统中定制的实体类的固定标识。 |
2.2 实体类对象(Entity Object)—行
...
属性定义包括:属性名、显示名、数据类型、长度、是否为空、缺省值信息,详见下表。
元素 | 英文名 | 备注 |
属性名 | 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支持的属性类型有以下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 | 是 | 最近的更新时间 |
建模人员在创建新的实体类时,不需要再单独定义类的全局唯一标识、创建人、创建时间等基础属性,只需要对当前实体个性化的属性进行定义,从而避免了大量重复工作。
...
实体类/关联类相关的系统属性(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 系统中所有的英文名需要以 |
...
数据模型建立完成后,可以向实体类批量导入数据。数据需要以表格形式存储在.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必须是类型为产品的零部件等,这些输入限制操作将在后续教程中实现。 |
...
注意:所有类默认包含上述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