首页 > 代码库 > 在BPM动态可配置表单中使用NoSQL技术可行性分析——通用流程化应用审批单设计思路(二)

在BPM动态可配置表单中使用NoSQL技术可行性分析——通用流程化应用审批单设计思路(二)

        原业务流程平台审批单使用横向表纵向存储的思路,所有流程所使用的业务表单的数据都存在一张物理表中,表中每条数据记录包含Column定义和Value,Column所对应的字段信息,通过定义表来定义。这种做法就是在实现时,需要使用代码进行数据组装,比较繁琐。当表单较大时,界面展现速度慢。此方案查询统计支持有限。

        为了满足可配置动态表单的需求,并解决上述方案的不足,采用NoSQL技术来优化设计,因为NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。按NoSQL的特性,可以灵活进行schema结构(列定义)的修改,理论上应该可以很好支持这些动态表单的持久化保存。

        基于上述思路,采用审批单(表单)模版,以及NoSQL与关系型数据库相结合的方案,设计目标如下:

        (1)使用用户化工具设计审批单模版;

        (2)通过配置管理工具,配置审批单关键数据项,例如:标题、部门、关键数值(例如统计、流程流转规则所需要的)、时间等;

        (3)审批单模版需要版本化管理;

        (4)审批单数据存储分为两部分:一是关键字段内容,存储到关系型数据库中;整个表单(含HTML、CSS、JavaScript、图标等)连同数据内容,以文档整体对象存储到NoSQL数据库中;

        (5)审批单上所涉及到的CSS、JS、图标等资源性文件,需要进行版本管理(在数据库中只保存他们的URL);

        (6)历史表单查询保存原样;

        (7)保留表单数据内容修改痕迹(存储流转中多版本表单),提供定期清理功能;

        (8)保证高效读写性能,以及稳定性。

        上述目标也适用于信息专栏内容。

        另外,还有一套折中方案,也是在审批单模版的基础上,表单上非关键数据,组合成一个字符串保存(例如:JSON格式),在数据保存和提取展现时,按配置数据进行展现数据适配。

        上述方案需要技术验证,欢迎读者反馈、建议。

参考资料:

基于PaaS平台开发流程审批框架界面设计方案(草稿)

从原理分析审批流表单配置功能使用的问题

通用流程化应用审批单设计思路(一)

动态表单的数据库结构设计

在BPM动态可配置表单中使用NoSQL技术可行性分析——通用流程化应用审批单设计思路(二)