CN112286999A - 基于mysql和mongodb的动态表单实现方法 - Google Patents
基于mysql和mongodb的动态表单实现方法 Download PDFInfo
- Publication number
- CN112286999A CN112286999A CN202010808558.8A CN202010808558A CN112286999A CN 112286999 A CN112286999 A CN 112286999A CN 202010808558 A CN202010808558 A CN 202010808558A CN 112286999 A CN112286999 A CN 112286999A
- Authority
- CN
- China
- Prior art keywords
- field
- information
- mysql
- dynamic
- service data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于MYSQL和MONGODB的动态表单实现方法,包括如下步骤:a.获取或构造动态表单元信息和字段信息;b.根据动态表单元信息和字段信息定义动态表单,以固定数据结构存储到MYSQL数据库;c.根据所述数据结构,进行业务数据录入操作,结合动态表单定义,将表单业务数据保存到MONGODB。本专利所述的基于MYSQL和MONGODB的动态表单实现方法,只需开发一次,跨平台,即不依赖于操作系统,也不依赖硬件环境部署。并在B/S和移动端都可应用。避免了表单页面的重复设计和开发,大大降低实现成本。而且,在浏览器即可完成动态表单的修改操作,无需开发参与,修改即生效。
Description
技术领域
本发明涉及计算机数据处理技术领域,尤其涉及一种基于MYSQL 和MONGODB的动态表单实现方法。
背景技术
现阶段,小型软件大多是针对各业务系统定制开发CRUD逻辑 --CRUD是指在做计算处理时的增加(Create)、读取(Read)、更新 (Update)和删除(Delete)几个单词的首字母简写。CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。其中包含大量的重复的机械化的数据库表结构设计、编码、对接和测试等工作,至少存在以下几个问题,不利于小型软件的迭代和交付:
(1)需要多次设计和开发表单的展示界面,避免不了重复性工作;
(2)业务逻辑变更后,表单需要修改,对应数据库表要做变更,自下而上的编码、对接和测试等工作又要进行一遍,成本较高;
(3)一个业务的开发需要较多人力资源参与;
(4)对于C/S(Client/Server)结构,无法随时随地对表单数据进行录入动作。
发明内容
为解决上述问题,本发明提供如下技术方案:
基于MYSQL和MONGODB的动态表单实现方法,包括如下步骤:
a.获取或构造动态表单元信息和字段信息;
b.根据动态表单元信息和字段信息定义动态表单,以固定数据结构存储到MYSQL数据库;
c.根据所述数据结构,进行业务数据录入操作,结合动态表单定义,将表单业务数据保存到MONGODB。
所述动态表单元信息包括:表单标识、表单名称、筛选字段、排序字段、唯一字段,每一个表单标识对应一个表单名称;
所述字段信息包括:字段标识、字段名称、字段的属性名称、字段的属性值;一个字段标识对应一个字段名称,一个字段对应多个属性对象,一个字段属性名称对应一个或多个属性值;
所述业务数据包括:表单标识、字段标识、字段对应的值,一条业务数据对应一个表单标识,一条业务数据包含多个字段标识。
该方法还包括:
设计MYSQL数据表,存储其中的数据结构,至少包含两张表,表单元信息表和表单字段表。
定义动态表单包括如下步骤:
i)判断操作指令是新增还是编辑,如果是新增操作,执行ii),如果是编辑操作,执行iii);
ii)在浏览器根据新建操作所指示的字段类型,通过拖拽的方式组合表单字段,每个字段会有默认的缺省构造,这时,表单定义已在内存中形成,之后执行iv);
iii)从MYSQL中读取表单元信息和字段信息,加载到内存中,之后,展示元信息及遍历表单所有字段,根据字段类型创建展示控件;
iv)按业务需要,挨个个性化设置各字段属性,包括但不局限于:字段名称、默认值、提示语、关联输入、是否只读、是否必填等,更新内存中的表单定义;
v)保存内存表单定义到MYSQL数据库中的表单元信息表和表单字段表。
还包括业务数据与动态表单的关联,包含下列步骤:
i)从MYSQL中读取表单元信息和字段信息,加载到内存中,之后,展示元信息及遍历表单所有字段,根据字段类型创建展示控件;
ii)依据字段属性--提示语、默认值和关联输入等,填入实际的业务数据;
iii)后台进行合法性校验,业务数据校验通过后,表单标识、字段标识、字段值等组合成业务数据对象存储到MONGODB。
还包括:
表单元信息、字段信息获取模块,用于从MYSQL中获取表单元数据信息和字段信息,传递给表单渲染模块;
表单定义处理模块,用于将表单元信息和字段信息,保存到MYSQL 的表单元信息表和字段信息表中;
业务数据获取模块,用于根据表单标识,从MONGODB中获取表单业务数据,传递给表单渲染模块;
业务数据处理模块,用于将业务数据,关联动态表单,存储到 MONGODB中;
表单渲染模块,用于将表单元信息、字段信息,结合业务数据,产生相应的表单界面;
MYSQL数据库,用于将接收到的信息持久化保存。
本专利所述的基于MYSQL和MONGODB的动态表单实现方法,只需开发一次,跨平台,即不依赖于操作系统,也不依赖硬件环境部署。并在B/S和移动端都可应用。避免了表单页面的重复设计和开发,大大降低实现成本。而且,在浏览器即可完成动态表单的修改操作,无需开发参与,修改即生效。
附图说明
图1为基于MYSQL和MONGODB的动态表单生成方法的流程图
图2为类型编码和类型名称的对应关系图
图3为类型编码和类型名称的字段属性介绍图
图4为MYSQL中的数据结构表单元信息表图
图5为MYSQL中的数据结构表单字段信息表图
图6为实施例所述的某业务数据的存在形式表图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,是根据本发明实施例的一种基于MYSQL和MONGODB的动态表单生成方法的流程图,具体包括:
步骤S1,配置动态表单元信息,提交保存。
本实施例中,将组成动态表单的元素,如字段、控件及其属性等,抽象出来,形成与技术无关的元信息。
上述元信息是与技术无关的,可以具体包括字段、字段属性,字段包括字段标识、字段类型、字段名称,字段属性包括属性名称和属性值。
其中字段类型包含类型编码和类型名称,对应关系如图2所示,字段属性介绍如图3所示。
一个字段编码对应一个字段类型,一个字段对应多个属性,一个属性标识对应一个属性名称。
在浏览器中。依据所述元数据描述,点击字段类型候选面板中的字段类型,或从字段类型候选面板中拖拽指定字段类型到表单区,和表单元数据信息,在内存中组成表单定义,如图2。此图为本发明实施例的一个表单定义装置的示例,该表单定义装置也可称作为可视化表单设计器。
本步骤是用来记录构成具体表单的基础元信息和各个字段及其属性,也就是说,一个表单由一个以上字段构成,一个字段包含多个属性,一个属性由属性名称和属性值组成。
步骤S2,MYSQL存储相应的结构化数据。
由步骤S1可知,一个表单的保存,需要保存表单的基础元信息,且各个字段的描述及其属性,结合浏览器的操作和展现形式,MYSQL 中的数据结构分为表单元信息表—图4,描述表单名称、筛选字段、唯一字段、排序字段等信息,和表单字段信息表–图5,描述字段名称、字段类型、字段位置等信息。
至此,一份动态表单的描述已生成。
步骤S3,通过B/S或移动端提交录入表单业务数据。
通过表单元信息、字段信息获取模块,用于从MYSQL中获取表单元数据信息和字段信息,浏览器或移动端依据这些信息,确定表单的展现形式,如图3。
依据S1步骤中配置的表单字段提示语、默认值、是否必填等,输入实际业务数据。浏览器或移动端将业务数据传递给业务数据处理模块。
步骤S4,MONGODB保存业务数据。
在步骤S3后,业务数处理模块将动态表单标识设置进业务数据,存储到MONGODB中,完成业务数据与动态表单的关联。MONGODB中的业务数据结构,至少包含一个表单标识,一个或多个字段标识及其业务字段的值,假设某动态表单T的标识为t,由字段A、B、C、D构成,其标识分别为a、b、c、d且类型分为当行文本、多行文本、日期、数字。则在MONGODB中,某业务数据的存在形式如图6。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (6)
1.基于MYSQL和MONGODB的动态表单实现方法,包括如下步骤:
a.获取或构造动态表单元信息和字段信息;
b.根据动态表单元信息和字段信息定义动态表单,以固定数据结构存储到MYSQL数据库;
c.根据所述数据结构,进行业务数据录入操作,结合动态表单定义,将表单业务数据保存到MONGODB。
2.根据权利要求1所述的基于MYSQL和MONGODB的动态表单实现方法,其特征在于:
所述动态表单元信息包括:表单标识、表单名称、筛选字段、排序字段、唯一字段,每一个表单标识对应一个表单名称;
所述字段信息包括:字段标识、字段名称、字段的属性名称、字段的属性值;一个字段标识对应一个字段名称,一个字段对应多个属性对象,一个字段属性名称对应一个或多个属性值;
所述业务数据包括:表单标识、字段标识、字段对应的值,一条业务数据对应一个表单标识,一条业务数据包含多个字段标识。
3.根据权利要求1所述的基于MYSQL和MONGODB的动态表单实现方法,该方法还包括:
设计MYSQL数据表,存储其中的数据结构,至少包含两张表,表单元信息表和表单字段表。
4.根据权利要求1所述的基于MYSQL和MONGODB的动态表单实现方法,其特征在于,定义动态表单包括如下步骤:
i)判断操作指令是新增还是编辑,如果是新增操作,执行ii),如果是编辑操作,执行iii);
ii)在浏览器根据新建操作所指示的字段类型,通过拖拽的方式组合表单字段,每个字段会有默认的缺省构造,这时,表单定义已在内存中形成,之后执行iv);
iii)从MYSQL中读取表单元信息和字段信息,加载到内存中,之后,展示元信息及遍历表单所有字段,根据字段类型创建展示控件;
iv)按业务需要,挨个个性化设置各字段属性,包括但不局限于:字段名称、默认值、提示语、关联输入、是否只读、是否必填等,更新内存中的表单定义;
v)保存内存表单定义到MYSQL数据库中的表单元信息表和表单字段表。
5.根据权利要求1所述的基于MYSQL和MONGODB的动态表单实现方法,
其特征在于,还包括业务数据与动态表单的关联,包含下列步骤:
i)从MYSQL中读取表单元信息和字段信息,加载到内存中,之后,展示元信息及遍历表单所有字段,根据字段类型创建展示控件;
ii)依据字段属性--提示语、默认值和关联输入等,填入实际的业务数据;
iii)后台进行合法性校验,业务数据校验通过后,表单标识、字段标识、字段值等组合成业务数据对象存储到MONGODB。
6.根据权利要求1所述的一种基于MYSQL和MONGODB的动态表单生成方法,其特征在于,还包括:
表单元信息、字段信息获取模块,用于从MYSQL中获取表单元数据信息和字段信息,传递给表单渲染模块;
表单定义处理模块,用于将表单元信息和字段信息,保存到MYSQL的表单元信息表和字段信息表中;
业务数据获取模块,用于根据表单标识,从MONGODB中获取表单业务数据,传递给表单渲染模块;
业务数据处理模块,用于将业务数据,关联动态表单,存储到MONGODB中;
表单渲染模块,用于将表单元信息、字段信息,结合业务数据,产生相应的表单界面;
MYSQL数据库,用于将接收到的信息持久化保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010808558.8A CN112286999A (zh) | 2020-08-12 | 2020-08-12 | 基于mysql和mongodb的动态表单实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010808558.8A CN112286999A (zh) | 2020-08-12 | 2020-08-12 | 基于mysql和mongodb的动态表单实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286999A true CN112286999A (zh) | 2021-01-29 |
Family
ID=74420776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010808558.8A Pending CN112286999A (zh) | 2020-08-12 | 2020-08-12 | 基于mysql和mongodb的动态表单实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286999A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883030A (zh) * | 2021-02-19 | 2021-06-01 | 南京苏宁软件技术有限公司 | 数据收集方法、装置、计算机设备和存储介质 |
CN113569550A (zh) * | 2021-07-29 | 2021-10-29 | 浪潮通用软件有限公司 | 一种可配置的表单运行时定制方法、设备及介质 |
CN115048151A (zh) * | 2022-06-13 | 2022-09-13 | 艺龙网信息技术(北京)有限公司 | 后台数据的配置方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661508A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种应用于多技术平台的生成表单的方法及装置 |
CN103246733A (zh) * | 2013-05-13 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种基于元数据的动态表单系统及其生成方法 |
CN107153544A (zh) * | 2017-05-09 | 2017-09-12 | 合肥汉腾信息技术有限公司 | 一种表单自定义方法和装置 |
-
2020
- 2020-08-12 CN CN202010808558.8A patent/CN112286999A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661508A (zh) * | 2009-09-29 | 2010-03-03 | 金蝶软件(中国)有限公司 | 一种应用于多技术平台的生成表单的方法及装置 |
CN103246733A (zh) * | 2013-05-13 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种基于元数据的动态表单系统及其生成方法 |
CN107153544A (zh) * | 2017-05-09 | 2017-09-12 | 合肥汉腾信息技术有限公司 | 一种表单自定义方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883030A (zh) * | 2021-02-19 | 2021-06-01 | 南京苏宁软件技术有限公司 | 数据收集方法、装置、计算机设备和存储介质 |
CN113569550A (zh) * | 2021-07-29 | 2021-10-29 | 浪潮通用软件有限公司 | 一种可配置的表单运行时定制方法、设备及介质 |
CN113569550B (zh) * | 2021-07-29 | 2023-06-23 | 浪潮通用软件有限公司 | 一种可配置的表单运行时定制方法、设备及介质 |
CN115048151A (zh) * | 2022-06-13 | 2022-09-13 | 艺龙网信息技术(北京)有限公司 | 后台数据的配置方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286999A (zh) | 基于mysql和mongodb的动态表单实现方法 | |
CN109614424B (zh) | 页面布局生成方法、装置、计算设备和介质 | |
CN112286779B (zh) | 测试任务处理方法、装置、存储介质和计算机设备 | |
CN111784108B (zh) | 一种主数据管理平台的建模方法和装置 | |
CN112650766A (zh) | 数据库数据操作的方法、系统及服务器 | |
CN106557307B (zh) | 业务数据的处理方法及处理系统 | |
CN115600644A (zh) | 多任务处理方法、装置、电子设备及存储介质 | |
CN111144837A (zh) | 流程编排的方法、装置、存储介质及电子设备 | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
CN117389873A (zh) | 一种接口服务自动化测试方法、装置及设备 | |
CN116483707A (zh) | 测试方法、装置、设备、存储介质及程序产品 | |
CN112949061B (zh) | 基于可复用算子的村镇发展模型构建方法和系统 | |
CN114259730A (zh) | 一种Cocos预制体的高效率导出方法、系统及介质 | |
CN115221852A (zh) | 基于vxe-table的动态计算表格实现方法、装置和计算机设备 | |
CN116860227B (zh) | 一种基于大数据etl脚本编排的数据开发系统及方法 | |
CN113379387B (zh) | 远程体检预约平台定制团检任务的处理方法 | |
CN117076332B (zh) | 一种测试用例的测试方法、装置、电子设备及存储介质 | |
KR102567118B1 (ko) | 전자메일을 사용하여 간편한 승인요청을 관리하는 시스템 및 그 동작방법 | |
US20240037325A1 (en) | Ability to add non-direct ancestor columns in child spreadsheets | |
CN117667648A (zh) | 代码分支的合线检测方法、装置、计算机设备和存储介质 | |
CN117931176A (zh) | 一种业务应用生成方法、装置、平台及介质 | |
CN114219453A (zh) | 任务处理方法、装置、电子设备以及存储介质 | |
US20220383215A1 (en) | Management device, management method, and management program | |
CN113742390A (zh) | 项目展示的方法、装置、终端及存储介质 | |
CN115510061A (zh) | 基于数据库表的动态存储扩展系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 b-1011, bungalow, building 2, A5 Xueyuan Road, Haidian District, Beijing Applicant after: Beijing Haizhi Technology Group Co.,Ltd. Address before: 100083 b-1011, bungalow, building 2, A5 Xueyuan Road, Haidian District, Beijing Applicant before: BEIJING HAIZHI WANGJU INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210129 |
|
RJ01 | Rejection of invention patent application after publication |