用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)

1、办公系统中文档的定义

办公系统中的文档就是指对数据不敏感的业务,例如流程中的审批单、信息专栏、数据上报、信息记录等。而对于这些信息的管理,特别是时效性较强的管理记录,仍采用关系型数据库进行管理。

(1)流程中审批单

流程中审批单由功能按钮区、特殊功能区、业务表单区、附件区、审批意见区等区域构成,其中,业务表单区理论上包含附件和意见,但是由于附件和意见的业务特殊性,需要单独进行管理,剩下的业务表单就可以看作文档了。

在一些流程审批业务中,业务信息有的是以Excel或word文件等方式专递,这样非常简洁,缺点就是不直观。

图1

典型业务表单样例

业务表单内容,主要用于审批主体对象,如下图所示的直观展示,能方便审批工作(与附件相对应),提高审批效率。

图2

(2)综合信息

综合信息是指新闻、资料、学习园地、法律法规、部门职能介绍等信息展现类业务,这类业务是以文字、图片为主,信息存储结构简单,不固定。而对信息的答复、评论,都是依附信息存在的,删除信息,则其所对应的评论、答复也就不存在了。

其中,信息专栏是信息按预定分类进行展现的入口,专栏结构不固定,变化较为频繁。

(3)数据上报

数据上报是指填报数据给主管部门,需要填报数据随意性比较大,变是常态。

以上审批单、综合信息、数据上报等业务主体,都具有数据结构不固定、变化频繁、数据敏感度低等特性;上述业务高端应用使用Lotus Notes/Domino(文档型数据库)系统来实现。因此,本文提出使用NoSQL数据库来实现上述业务。

2、审批单/表单“保存”与业务完整性

流程业务通常情况是这样的,工作人员填写业务申请单(填写表单),并准备好相关资料(添加附件),把业务申请单和资料打包(保存)后,送出传递给流程下一环节审批人。

完成上述业务,如下图3所示,至少需要填写表单、添加附件、保存、送出四个操作动作,而且其操作对象分别是文档资料和走流程,也就是说流程是运输线,文档资料是需要运载的货物。

基于上述定义,流程和文档资料可以进行分别管理,每个流程实例把流程和文档关联起来。

图3

(1)业务操作顺序

在处理流程中审批单业务时,用户操作顺序如下:

第一步:填写表单内容(含上传附件)或审批意见;

第二步:选择下一步及下一步接受人;

第三步:保存表单(等待反馈成功);

第四步:送出表单(审批单按工作流规则送往下一环节);

第五步:关闭当前页面,完成业务处理。

(2)业务完整性处理

在处理流程审批单业务过程中,要求先保存成功表单(保存到MongoDB中),并返回表单文档ID,然后,再进行送出操作,此时是工作流和业务关键数据在关系型数据库中进行保存更新操作,其中,记录了前面返回的表单文档ID。

3、数据库设计

(1)文档数据库设计

依据MongoDB数据库设计模型,一对多的关系(Model One-to-Many Relationships with Embedded Documents)模型。

在审批单中,如图2所示审批单主表与资产明细是一对多的关系,审批意见也是一对多的关系,把关系型数据库转换成NoSQL文档型数据库,也就是从Table转换为Collection,如下图4所示为内嵌式文档,资产明细在文档中存储为多条。

图4

由于审批意见是与流程相关的,流转经流程环节与审批意见对应,所以,审批意见应从Collection中拿出来,放到关系型数据库中进行使用。

(2)文档型数据库与关系型数据库结合使用思路

图5

从管理整体来看,也从技术架构整体来分析,数据库设计仍以关系型为主,引入NoSQL数据库仅仅解决了文档型数据信息的存储灵活性和数据结构不定、多变的需求。仅此一项将节省一部分的设计、开发工作量。

另外,围绕文档的定义,例如表单的配置数据项与MongoDB中Collection Schema对应。由于MongoDB数据库的列的水平扩展能力,在一个Collection(关系型数据库的表)中不同Document(关系型数据中的row),可以任意扩展以支持表单灵活、动态配置。

参考:

(1)通用流程化应用审批单设计思路(一) 2014年12月,肖永威

(2)在BPM动态可配置表单中使用NoSQL技术可行性分析——通用流程化应用审批单设计思路(二)2014年12月,肖永威

(3)云计算统一办公运营平台服务能力设计方案 2014年11月,肖永威

时间: 2024-10-13 00:01:03

用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)的相关文章

mongodb 数据库用户管理

测试环境 centos 6.7(x64) mongodb-linux-x86_64-2.7.8.tgz 1.创建系统级别管理用户use admindb.createUser({user: "root",pwd: "123456",roles: [{role: "userAdminAnyDatabase",db:"admin"}]}) 2.创建正对具体数据库管理用户use abcdb.createUser({user: &quo

慧正工作流行业案例——电子政务,北京市科委政务办公系统

北京市科委介绍 北京市科委是负责北京市科技工作的市政府组成部门. 主要职责 (一)贯彻落实国家关于科技工作方面的法律.法规.规章和政策,起草本市相关地方性法规草案.政府规章草案,组织拟订科技发展和科技促进经济社会发展的政策,并组织实施. (二)组织拟订本市科技发展中长期规划.年度计划,并组织实施:研究提出科技发展布局和优先发展领域:推动科技创新体系和科技服务体系建设,促进科技服务业发展:推进科技北京建设. (三)组织制定本市应用基础研究.高新技术发展以及重大科技成果应用研究的政策措施:负责统筹协

孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库

(完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第四天.今天的感觉是,mongoDB数据库的知识点非常庞大,目前只算是刚刚看见一隅而已. 一.今天经过长时间的努力,终于找到了正确连接到mongoDB远端服务的方法 都是使用MongoClient类的初始化方法进行. 但传入的参数是不同的: (一)传入从mongoDB服务器网站上获取的连接字符串 如: client = MongoClient("mongodb://user:[email protected]/the_dat

办公系统中经常遇到的权限管理问题

这几年一直在做办公系统 遇到了几个权限管理的问题. 1.设置用户代理功能 出现情况:由于领导出差或者 不方便处理自己工作的时候,可以设置代理来帮自己处理工作. (1).代理需要和领导自己有相同的权限,能操作相同的资源. (2).系统可以记录代理操作的记录. (3).代理应该有时间限制,过期自动作废,但是系统能够查询曾经的代理记录. (4).这个代理功能是全面授权,可能有权限漏洞. 2.用户设置授权功能 用户可以针对自己系统中的某中权限授予别人. 例如:领导的某项工作的审批权限,由于领导临时出差,

公文管理,oa办公系统如何实现?

公文管理在政府和国企里边本身是一个复杂的体系,牵扯到的部门和人员极为广泛,同时,公文的拟稿.审稿是否规范,签收.执行情况如何等,传统的公文管理是无法体现和进行跟踪的.因此,要实现公文管理的电子化相当不易,那么,新一代管理神器--oa办公系统能不能做到?又是如何实现的呢? 1.oa办公系统公文管理子系统应用架构设计满足客户需求 oa办公系统公文管理在应用架构上支持发文.交换.收文.归档等全流程管理;支持发文单.收文单.送文单.签收单.正文.套红模板等各种文单;支持修改留痕.手写批注.电子签章等各种

整理几个互联网公司常用的概念: SaaS是软件即服务 OA系统 意为办公自动化系统 BOSS指的是业务运营支撑系统 CRM客户关系管理 ERP系统是企业资源计划

整理几个互联网公司常用的概念: 解决以下几个疑问以及容易忘记或者混淆的概念: SaaS系统是什么 OA系统是什么  BOSS系统是什么 CRM系统是什么客户关系管理 ERP系统是什么 SaaS是Software-as-a-Service(软件即服务OA系统是Office Automation System 意为办公自动化系统.BOSS(Business & Operation Support System)指的是业务运营支撑系统CRM(Customer Relationship Manageme

6 款国外开源web oa办公系统(转)

国外的开源产品较多,而且大多提供免费的社区版本,oa办公系统也不例外. 1.eGroupware eGroupware是一个多用户,在以PHP为基础的API上的定制集为基础开发的,以WEB为基础的工作件套装.目前可用的模板包括:电子邮件,通讯录,日程表,记事簿(备注,任务,电话),内容管理,论坛,书签,维客等. 如果使用Debian/Ubuntu来搭建eGroupware,推荐使用rpm/deb安装包方式进行安装.eGroupware中文支持良好. eGroupware下载 eGroupware

6 款国外开源web oa办公系统

国外的开源产品较多,而且大多提供免费的社区版本,oa办公系统也不例外. eGroupware eGroupware是一个多用户,在以PHP为基础的API上的定制集为基础开发的,以WEB为基础的工作件套装.目前可用的模板包括:电子邮件,通讯录,日程表,记事簿(备注,任务,电话),内容管理,论坛,书签,维客等. 如果使用Debian/Ubuntu来搭建eGroupware,推荐使用rpm/deb安装包方式进行安装.eGroupware中文支持良好. eGroupware下载 GForge GForg

Python全栈 MongoDB 数据库(概念、安装、创建数据)

什么是关系型数据库? 是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据, 同时也是一个被组织成一组拥有正式描述性的表格(二维表),该形式的表格作用的实 质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存 取或重新召集而不需要重新组织数据库表格(即表与表之间的联系). nosql和关系型数据库比较?    优点:        1)成本:nosql数据库简单易部署,基本都是开源软件, 不需要像使用oracle那样花费大量成本购买使用,相比关系型