实体
实体是指系统中重要的业务对象,比如用户、订单、商品等。实体的定义、属性、关系、规则、约束等都需要进行建模。实体建模的主要目的是为了能够更好地理解业务,提升系统的可理解性、可维护性和可扩展性。
新建实体类:在新建的业务域下点击 编辑
按钮,点击 新建实体类
属性设置
属性是描述实体特征或状态的元素,它们提供了关于实体的具体信息。属性可以是定量的(如长度、重量、速度等),也可以是定性的(如颜色、形状、种类等)。
新建属性:点击左侧的实体类,进入实体类的配置面板
记录属性
记录属性理解为记录(或实体)的字段(或属性),即描述实体的各个具体特性的值。例如,学生(实体)有学号、姓名、年龄、性别等属性。
记录属性的配置项说明如下:
配置项 | 说明 | 类型 | 备注 |
---|---|---|---|
名称 | 属性项的名称 | 字符串 | |
表单提示语 | 填写表单时引导用户输入的提示语 | 字符串 | |
是否必填 | 是否是必填项 | 是否 | |
数据类型 | 属性项的数据类型 | 文本 、富文本 、数字 、日期 、是否 、字典 、层级字典 | |
是否唯一 | 是否允许重复 | 是否 | |
默认值 | 属性项的默认值 | 与数据类型一致 | |
转换数据类型 | 系统设计派生后自动产生 | 可跳转至对应系统设计详情 | |
显示规则 | 用户设置不同条件显示不同的样式 | 表达式 | |
数字格式 | 整数还是浮点数(小数) | 整数 、浮点数 | 数字 |
计量单位 | 计量单位(如:米、公斤) | 字符串 | 数字 |
日期格式 | 日期的显示格式 | 下拉选择 | 日期 |
默认系统时间 | 是否自动设置为系统时间 | 是否 | 日期 |
字典类型 | 从公共域字典模型中选择 | 下拉选择 | 字典 、层级字典 |
级联属性 | 是否是另外一个字典的级联下级,如当前属性为市区 ,可以选择省份 作为自己的级联属性 | 下拉选择 | 字典 、层级字典 |
计算属性
是通过已有的属性计算得到的新属性。例如,学生实体的总成绩属性可以由学生的语文、数学、英语三门成绩计算得到。 记录属性的配置项说明如下:
配置项 | 说明 | 类型 | 备注 |
---|---|---|---|
名称 | 属性项的名称 | 字符串 | |
表单提示语 | 填写表单时引导用户输入的提示语 | 字符串 | |
数据类型 | 属性项的数据类型 | 文本 、富文本 、数字 、日期 、是否 、字典 、层级字典 | |
转换数据类型 | 系统设计派生后自动产生 | 可跳转至对应系统设计详情 | |
计量单位 | 计量单位(如:米、公斤) | 字符串 | 数字 |
计算规则 | 计算出当前属性项值的表达式 | 表达式 | |
显示规则 | 用户设置不同条件显示不同的样式 | 表达式 |
聚合关系属性
聚合关系属性是指实体类之间的关联关系(松耦合),并通过聚合关系属性来表示这种关联关系。例如,订单实体与商品实体之间存在关联关系,可以将订单中的商品作为聚合关系属性来表示。
如何配置聚合关系属性?
- 首先分别配置两个具有关联关系的实体类,如企业和机构,我们需要将机构聚合到企业中,成为企业的管理机构的属性。
- 点击
创建
选择聚合关系
,进入聚合关系配置面板。 关系对方
选择需要被聚合的实体,如在企业实体中,选择的关系对方
就是机构。选择创建关系
。- 根据需要选择
对方是否多个
、本方是否多个
、是否依赖对方
、称呼对方
,然后点击确认这里企业可以有多个管理机构,一个管理机构也可以管理多个企业,
所以
本方是否多个
为是
,对方是否多个
为是
。
聚合关系配置面板介绍
配置项 | 说明 | 备注 |
---|---|---|
双向关系配置 | 打开双向关系详细配置面板 | |
扩展关系类 | 将当前关系扩展为新的关系类 | 常用于扩展属性 如企业和人员,希望企业人员不仅有人员属性信息,还可以扩展入职时间等 |
关系对方 | 被聚合的一方 | |
称呼对方 | 自定义被聚合的一方的名称 | |
对方是否多个 | 本方是否对应对方多个实例 | 如:一个企业可以有多个管理机构 但一个火车只有一个列车长 |
关系维护方式 | 手动编辑 、自动计算 、仅查看 | 手动编辑 :手动绑定提交逻辑 自动计算 :自动关联查询到的所有对象,需要设计查询规则仅查看 :仅查看关系,不编辑 |
是否必填 | 被聚合的一方是否必填 | |
多值最少数量 | 对方为多个时,最少关联数量 | |
查询规则 | 配置查询聚合关系的筛选规则(表达式) |
组合关系属性
组合关系属性是指实体类之间的关联关系(紧耦合,通常指整体与局部的关系),并通过组合关系属性来表示这种关联关系。例如,电脑这个实体是由主机实体、屏幕实体、内存实体、硬盘实体等组成的,可以将这些实体作为组合关系属性来表示。
如何配置组合关系属性?
- 首先分别配置两个具有关联关系的实体类,如企业和资质,我们需要将资质组合到企业中,成为企业的企业资质的属性(注:一个企业可以有多个资质)。
- 点击
创建
选择组合关系
,进入组合关系配置面板。 关系对方
选择需要被组合的实体,如在企业实体中,选择的关系对方
就是资质。选择创建关系
。- 根据需要选择
对方是否多个
、本方是否多个
、称呼对方
,然后点击确认。
组合关系配置面板介绍
配置项 | 说明 | 备注 |
---|---|---|
双向关系配置 | 打开双向关系详细配置面板 | |
反转聚合关系 | 将本方的组合关系转换为对方的聚合关系 | |
关系对方 | 选择被组合的一方 | |
称呼对方 | 自定义被组合的一方的名称 | |
对方是否多个 | 本方是否对应对方多个实例 | 如:一个企业可以有多个企业资质 |
关系维护方式 | 手动编辑 、自动计算 、仅查看 | 手动编辑 :手动绑定提交逻辑 自动计算 :自动关联查询到的所有对象,需要设计查询规则仅查看 :仅查看关系,不编辑 |
是否必填 | 被聚合的一方是否必填 | |
多值最少数量 | 对方为多个时,最少关联数量 | |
依据类 | //todo | |
转换规则 | 可以将组合关系的某个字段通过表达式按照指定逻辑赋值 |
提示
组合关系
和 聚合关系
的区别在于关系的强度。聚合关系中聚合的各个实体通常具有独立性,而组合关系中组合的实体通常不具有独立性,是整体的一部分。
扩展关系类
扩展关系类是指实体类之间存在关联关系,并通过扩展关系类来表示这种关联关系,常用于 扩展属性
, 如企业和人员,希望企业人员不仅有人员属性信息,还可以扩展入职时间等,系统就会自动生成一个新的实体,用于保存原有关系带入的属性和扩展的属性。
如何扩展关系类?
- 如下图所示,已经建立了企业和人员的聚合关系,这时候我们想扩展一些属性,比如入职时间,点击
扩展关系类
- 点击确定后,会在实体层创建一个关系类实体,如下图所示,并且我们添加了一个记录属性
入职时间
。 - 原来的企业实体下的企业人员的聚合关系变成了扩展关系类,点击
前往管理
可以跳转到关系类实体的管理页面。
状态
状态属性是指实体的生命周期状态,如订单的状态可以是 待支付
、待发货
、待收货
、待评价
、已完成
等。
状态属性只能从状态字典中选择,状态字典是一种特殊的字典,状态的变化只能按照设定好的状态流向进行变更,如 待收货
状态只能变更为 待评价
状态,而不能变更为 待支付
状态。
点击
创建
选择状态
,进入状态配置面板。在状态配置面板中,选择
创建
按钮,创建新的状态属性,并新建一个对应的状态字典与之绑定。
或者点击 复用
,只创建新的状态属性,并复用已有的状态字典。
配置
状态转移图
: 点击状态转移图
按钮,可以配置状态的流转关系。从左侧拖动一个
状态位
到画布中,点击拖入的状态位,然后绑定对应的状态字典
。新创建的状态字典是空的,没有字典项可供选择绑定,可以点击
+
,新建字典项。按照业务逻辑,通过连线,绘制状态位之间的流转关系。
查看状态字典所属信息和状态字典项使用情况
点击状态的状态字典
查看状态字典所属状态(因为存在状态字典复用的情况,所以一个状态字典可能属于多个状态)
查看状态字典项的使用情况
引用属性
指的是实体类之间的关联关系,即一个实体类可以与另一个实体类相关联,并通过引用属性来表示这种关联关系。
例如,企业实体与人员实体之间存在关联关系,可以将人员的身份证号码作为企业人员的身份证号码作为引用属性。
引用属性不另外生成存储空间,而是一种指向。
引用属性可以分为在 实体类
上的引用属性和在 关系类
上的引用属性。
实体类上的引用属性
点击
创建
,选择引用属性
,进入引用属性配置面板。从
所属关系
下拉框中选择关联的实体类,这里我们选择企业人员。会自动判断对方数量,如果对方是多个,则对方数量为集合
,否则为对象
,然后选择需要引用的属性。
如果对方数量为
集合
,那么只能将集合的聚合运算结果(如:计数、求和、求平均值等)作为引用属性
如果对方数量是
对象
,那么可以将对象属性作为引用属性。
关系类上的引用属性
在关系类上点击 创建
,选择引用属性,进入引用属性向导面板。 在向导面板中,选择所属关系和属性,然后点击确定,即可完成引用。
流程属性
存在于流程管理中的属性,用于引用流程中的各个属性,如标题、状态、发起人等到实体中显示。
在创建流程属性前,需要创建对应的流程事件(//todo 链接)
- 在实体类上点击
创建
,选择流程属性
,进入流程属性配置面板。 - 依次选择
所属流程
、引用属性
,点击确定。
标识配置
标识配置分为 名称标识
和 主项标识
。
名称标识
名称标识是对象缩略展示的内容,可以选择实体的一个属性。
如下图,在原型
部分选择平铺表单,就会把选择的名称标识项的信息显示在顶部名称栏。
主项标识
主项标识是列表默认展示的内容,可以选择实体的多个属性,目前是派生选择列表的依据。
暂不支持选择关系作为标识,需变通为选择引用属性
如下图,在原型
部分选择表格表单,就会把选择的主项标识项的信息显示在列表中。
权限配置
可以为不同的 角色,配置实体的权限。
如何进行权限配置?
1.在业务子域上按照需要配置好 角色
,假设我们这里有一个投标的业务,我们新建了 投标信息发起者
、投标文件购买发起者
等角色。
2.点击业务实体,选择 权限配置
,点击 +新增项
,进入权限配置面板。
- 所属角色: 选择创建的
角色
,这里我们选择投标信息发起者
。 - 访问范围: 我们可以额外配置访问范围,来进一步缩小选择范围,这里我们配置为
投标信息的创建人=当前用户
,即当前用户只能查看自己创建的投标信息。 - 能否操作: 即能否操作(编辑删除等)访问到的数据。
- 操作访问来源:
同访问范围
表示能访问到的都可以操作,单独配置
表示额外配置可操作范围。 - 操作范围: 通过表达式配置能操作的范围,这里我们配置为
投标信息的审核状态=审核中
,即当前用户只能编辑在审核中的投标信息。
规则配置
校验规则
用于在表单提交时,校验设定的检查项
提示
和在 属性项
上设定的不同,属性项
的校验规则更多是对于单个属性的校验,如格式、长度、范围等。而实体上的校验规则是对整体逻辑的校验,如关系对象的数量至少是几个,或者多个属性项是否有排斥等。
配置项 | 说明 | 备注 |
---|---|---|
名称 | 校验规则的名称 | |
反转聚合关系 | 将本方的组合关系转换为对方的聚合关系 | |
关系对方 | 选择被组合的一方 | |
称呼对方 | 自定义被组合的一方的名称 | |
对方是否多个 | 本方是否对应对方多个实例 | 如:一个企业可以有多个企业资质 |
排序规则
用于在列表中对实体进行排序,可以设置多个排序规则,每个规则可以选择多个属性进行排序。
配置项 | 说明 | 备注 |
---|---|---|
名称 | 排序规则的名称 | |
属性 | 选择哪个属性进行排序 | |
顺序 | 顺序或降序 | |
空值后置 | 空值是否排在最后 |
查询规则
用于在查询中,通过表达式设置查询条件。
系统会自动派生默认的实体列表查询规则和关联关系的查询规则。
配置项 | 说明 | 备注 |
---|---|---|
筛选范围 | 通过表达式设置的条件 | |
筛选访问权限 | //todo | |
排序规则 | 可选择默认排序或选择属性排序 |
其他配置
主要包含 分组
和 关系代词
,可以将这两个概念理解为实体的外延。主要作用是将常用的概念配置出来,方便在后续的业务中(如权限的访问范围)复用。
分组
分组是对实体出发,对实体本身进行的一些分类,找到实体的一组范围。比如一年级的学生,工业用地等。
下面是一个设置为安徽人分组的例子,需要设置分组的名称、分组条件等。
关系代词
关系代词表示从当前实体出发,通过关系链路和定位规则,找到目标对象的一组范围。
这意味着关系代词不仅可以找到当前实体类的数据,也可以相当不同于当前实体类的其他实体类数据。
下面是一个从装修工程出发,找到所有相关的房间的例子。
定位规则 定位规则可以从 入口对象
出发,链式地选择不同的定位规则,直到找到目标对象。支持的定位规则有:入口对象
、关系导航
、代词导航
、分组筛选
、用户创建的
、权限控制
。
- 入口对象:默认的出发点规则,表示当前对象。
- 关系导航:通过关系链路,找到目标对象。
- 代词导航:通过复用已经定义的关系代词,找到目标对象。
- 分组筛选:通过复用已经定义分组条件,找到目标对象。
- 用户创建的:通过用户创建的实体这个条件,找到目标对象。
- 权限控制:不用定义具体的筛选逻辑,通过实体的权限控制,找到目标对象。