节点标识的两种方式的比较
来源:互联网 发布:declare sql用法 编辑:程序博客网 时间:2024/05/17 05:12
在AnyData 中,我们需要通过节点标识(一个sql条件)来描述一个流程节点,当前数据满足该节点标识时,数据处于该节点,例如 Printed='T' 表示 已打印,CheckPassed='F' 表示审核未通过。
例如,在医院超声检查流程中的几个节点和节点标识如下
已到达 : Schedule.Arrived='T' and Schedule.Waited='F'
室外候 : Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F'
检查中 : Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='T' and Schedule.Printed='F'
已打印 : Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F' and Schedule.Printed='T'
通过上述的多个标记字段的组合来描述流程节点,非常直观,便于阅读,但是问题是当在一个比较复杂的流程中节点标识可能会很长,最终客计算每个数据记录的流程状态时非常慢。
而且,如果再需要在流程的开头增加一个新的节点 急诊 Schedule.emergency='T' 或 'F',则需要在每个节点的标识中都需要添加新的节点标识,如下:
急诊 : Schedule.emergency='T'
已到达 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='F'
室外候 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F'
检查中 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='T' and Schedule.Printed='F'
已打印 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F' and Schedule.Printed='T'
流程调整时非常麻烦。
上述的节点标识我们称之为多字段节点标识,即,通过多个字段组合完成对一个节点的标识。另外一种节点标识的方法我们称之为单字段节点标识,所有的流程节点都是通过一个字段进行标识。用于节点标识的字段我们称之为标志字段。例如采用一个字段SeqStep=1标识处于第一个节点,SeqStep=2标识处于第二个节点,这样,每个节点的标识都很简单,计算速度快,而且增加新的节点也非常简单,例如我们上述的超声检查流程中,我们通过单字段节点标识的方式描述流程节点,如下:
已达到: SeqStep=1
室外候: SeqStep=2
检查中: SeqStep=3
已打印: SeqStep=4
如果增加一个 急诊 节点非常容易:
急诊: SeqStep=5
已达到: SeqStep=1
室外候: SeqStep=2
检查中: SeqStep=3
已打印: SeqStep=4
两种方式比较之后我们可以看出区别:
多字段节点标识 单字段节点标识
1、可读性 好 差
2、可维护性 差 好
3、执行效率 差 好
例如,在医院超声检查流程中的几个节点和节点标识如下
已到达 : Schedule.Arrived='T' and Schedule.Waited='F'
室外候 : Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F'
检查中 : Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='T' and Schedule.Printed='F'
已打印 : Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F' and Schedule.Printed='T'
通过上述的多个标记字段的组合来描述流程节点,非常直观,便于阅读,但是问题是当在一个比较复杂的流程中节点标识可能会很长,最终客计算每个数据记录的流程状态时非常慢。
而且,如果再需要在流程的开头增加一个新的节点 急诊 Schedule.emergency='T' 或 'F',则需要在每个节点的标识中都需要添加新的节点标识,如下:
急诊 : Schedule.emergency='T'
已到达 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='F'
室外候 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F'
检查中 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='T' and Schedule.Printed='F'
已打印 : Schedule.emergency='F' and Schedule.Arrived='T' and Schedule.Waited='T' and Schedule.Cheked='F' and Schedule.Printed='T'
流程调整时非常麻烦。
上述的节点标识我们称之为多字段节点标识,即,通过多个字段组合完成对一个节点的标识。另外一种节点标识的方法我们称之为单字段节点标识,所有的流程节点都是通过一个字段进行标识。用于节点标识的字段我们称之为标志字段。例如采用一个字段SeqStep=1标识处于第一个节点,SeqStep=2标识处于第二个节点,这样,每个节点的标识都很简单,计算速度快,而且增加新的节点也非常简单,例如我们上述的超声检查流程中,我们通过单字段节点标识的方式描述流程节点,如下:
已达到: SeqStep=1
室外候: SeqStep=2
检查中: SeqStep=3
已打印: SeqStep=4
如果增加一个 急诊 节点非常容易:
急诊: SeqStep=5
已达到: SeqStep=1
室外候: SeqStep=2
检查中: SeqStep=3
已打印: SeqStep=4
两种方式比较之后我们可以看出区别:
多字段节点标识 单字段节点标识
1、可读性 好 差
2、可维护性 差 好
3、执行效率 差 好
- 节点标识的两种方式的比较
- 获取根节点的两种方式
- SQL语句中插入标识列获取标识ID的两种方式
- 【讨论】两种循环方式的比较
- 创建线程两种方式的比较
- 创建线程两种方式的比较
- Jsp两种注释方式的比较。
- 数据库注册两种方式的比较
- 两种封装模块方式的比较
- 比较日期大小的两种方式
- 比较Compare的两种方式
- Service 两种开启方式的比较
- Service的两种使用方式比较
- jQuery 获取DOM节点的两种方式
- fuel: 安装onos的两种节点选择方式
- 自定义类的大小比较重载的两种方式
- PHP的两种方式CGI和mod_php的比较
- android定时器的两种方式的部分比较
- tomcat 发生了java.lang.OutOfMemoryError: PermGen space
- 用.NET框架实现序列化
- 第九章 配置和调度(rainbow 翻译)
- 网上下载和上传数据
- document.getElementById主要是做什么用的?
- 节点标识的两种方式的比较
- 我的入门教材
- 扫把和纸篓〖Max毛发练习〗
- 连续15个月处于实际负利率 央行加息迫在眉睫
- 數據庫分頁
- 深入剖析VB.NET变量的使用
- 点石互动--zac之:SEO教程写作计划
- 如何检测电脑是否安装了.net framework
- netbean中does not exist or is not a readable错误的解决