一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

非关系型数据库的表单校验规则生成方法和系统与流程

2021-12-14 22:55:00 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,特别是涉及非关系型数据库的表单校验规则生成方法和系统。


背景技术:

2.在生产生活中,我们通过电子表单收集数据的需求日趋上升,例如营销类的调查问卷、企事业单位日常运行收集业务数据、疫情期间社区收集居民体温数据等,整体呈现:需求发生快、表单内容迭代快、表单的数据量剧增等趋势。过去一名软件工程师也许一天做出一个问卷表单就能满足企业需求,而现在的企业可能需要每天都创建数十个表单来收集各种各样的数据。
3.为了更好地收集这些由用户填写的数据,往往需要在填写时,需要做好各种输入体验优化、防呆设计等工作,就对用户录入的内容进行校验、判断、提示错误等,既是为了提升用户输入体验,也降低了日后对海量数据进行清洗的成本。例如,当我们希望收集某一时间发生的日期时刻数据时,通常期望能够收集到格式统一的日期时刻数据,若不加以限制,则有可能收集到五花八门的各种表现形式,往往需要日后花费大量的成本来进行数据清洗,徒增企业成本。另外,面对量级超过以往千百倍的数据时,传统的关系型数据库往往在性能上无法满足需求。例如,当单表行数超过一亿乃至更多时,传统的关系型数据库都体现出非常明显的读写速度下降。因此许多系统都引入了非关系型数据库来加速应用。
4.关系型数据库具有数据表结构,数据表是由表名、表中的字段和表的记录三个部分组成的。设计数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型、及宽度,并将这些数据输入到计算机当中。然而非关系型数据库缺少表结构描述这一特性,往往需要工程师手动书写表单校验规则,消耗大量的人力成本。
5.现有的表单验证规则生成技术通常只适用于关系型数据库,并且只分析表结构,并不分析数据内容,而对于mongodb或者其他的非关系型数据库,现有的表单验证规则生成技术便完全无法适用。
6.针对相关技术中存在的现有的表单验证规则生成技术不支持非关系型数据库的问题,目前还没有提出有效的解决方案。


技术实现要素:

7.在本实施例中提供了一种非关系型数据库的表单校验规则生成方法和系统,以解决相关技术中存在的现有的表单验证规则生成技术不支持非关系型数据库的问题。
8.第一个方面,在本实施例中提供了一种非关系型数据库的表单校验规则生成方法,包括:确定表名称,依据所述表名称从非关系型数据库中确定与所述表名称对应的对象集合;遍历所述对象集合,依次获取所述对象集合中的字段名称集合和每个字段名称所对应的数据集合;将所述每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成所述字段的校验规则。
9.在其中的一些实施例中,将所述每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成所述字段的校验规则,包括:确定所述字段名称所对应的数据集合中的数据的属性;确定所述预设规则库里的预设规则的属性;根据所述数据的属性与所述预设规则的属性确定所述数据与所述预设规则的对应关系,根据所述对应关系,将所述数据与所述预设规则进行匹配,依据匹配结果生成所述字段的校验规则。
10.在其中的一些实施例中,将所述每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成所述字段的校验规则,包括:确定所述字段名称所对应的数据集合中的数据;确定所述预设规则库里的预设规则;逐一将所述数据与所述规则进行匹配,并依据匹配结果生成所述字段的校验规则。
11.在其中的一些实施例中,遍历所述对象集合,获取所述对象集合中的字段名称集合和每个字段名称所对应的数据集合之前,所述方法还包括:
12.将对象集合中的对象格式转换成编程语言所支持的格式。
13.在其中的一些实施例中,将所述每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成所述字段的校验规则之后,所述方法还包括:
14.获取所述每个字段名称所对应的数据集合中的数据;判断所述数据是否与所述预设规则库里的预设规则匹配,在所述数据与所述规则匹配时,依据匹配结果生成所述字段的校验规则,在所述数据与所述规则均不匹配时,标记出所述数据对应的字段。
15.在其中的一些实施例中,在所述数据与所述规则均不匹配时,标记出所述数据对应的字段,所述方法还包括:
16.给所述数据对应的字段编制校验规则。
17.在其中的一些实施例中,遍历所述对象集合,依次获取所述对象集合中的字段名称集合和每个字段名称所对应的数据集合,包括:遍历所述非关系型数据库中的获取到的所有对象的字段,并依据遍历结果获取所述对象集合中的字段名称集合;遍历所述对象集合中的字段名称集合所对应的数据,并依据遍历结果获取所有字段的名称所对应的数据集合。
18.第二个方面,在本实施例中提供了一种非关系型数据库的表单校验规则生成系统,包括:终端设备和服务器设备;其中,所述终端设备连接服务器设备;
19.所述终端设备用于发送用户的请求指令;所述服务器设备用于第一个方面所述的非关系型数据库的表单校验规则生成方法。
20.第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的非关系型数据库的表单校验规则生成方法。
21.第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的非关系型数据库的表单校验规则生成方法。
22.与相关技术相比,在本实施例中提供的一种非关系型数据库的表单校验规则生成方法,通过确定表名称,依据所述表名称从非关系型数据库中确定与所述表名称对应的对象集合;遍历所述对象集合,依次获取所述对象集合中的字段名称集合和每个字段名称所
对应的数据集合;将所述每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成所述字段的校验规则。解决了相关技术中存在的现有的表单验证规则生成技术不支持非关系型数据库的问题,实现了支持非关系型数据库的表单验证方法的技术效果,提高了非关系型数据库的表单验证效率。
23.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
24.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
25.图1是本实施例的非关系型数据库的表单校验规则生成方法流程图;
26.图2是本优选实施例的非关系型数据库的表单校验规则生成方法流程图;
27.图3是本实施例的非关系型数据库的表单校验规则生成装置的结构框图。
具体实施方式
28.为更清楚地理解本技术的目的、技术方案和优点,下面结合附图和实施例,对本技术进行了描述和说明。
29.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
30.本技术中的非关系型数据库以mongodb为例,mongodb是一个基于分布式文件存储的数据库。由c 语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。mongodb是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
31.在本实施例中提供了一种非关系型数据库的表单校验规则生成方法,图1是本实施例的非关系型数据库的表单校验规则生成方法的流程图,如图1所示,该流程包括如下步骤:
32.步骤s101,确定表名称,依据表名称从非关系型数据库中确定与表名称对应的对象集合。
33.由于mongodb数据库中的数据以分布式的对象的形式存储,与关系型数据库不同的是它不具有关系型数据库的行列的形式。例如,mongodb数据库中的表名称是x,表x的q其中一个对象包括表名x、字段a、字段b和字段c及各字段对应的值a1、b1、c1;表x的另一个对象包括表名x、字段a、字段d和字段e及各字段对应的值a2、d2、e2。可见即使是相同的数据表的对象,具体的字段及字段的数量都可能不同。
34.确定表名称x后,先从mongodb数据库中查询到与表名称x对应的所有对象,比如:字段a、字段b和字段c以及字段a、字段d和字段e。
35.步骤s102,遍历对象集合,依次获取对象集合中的字段名称集合和每个字段名称所对应的数据集合。
36.先遍历查询到的所有对象,比如遍历字段a、字段b和字段c以及字段a、字段d和字段e等,依据遍历结果,获取所有对象的名称,比如字段a的名称是班级序号,字段b的名称是姓名;字段c的名称是身份证号,字段d的名称是电话号码。对应于字段a的所有的值均是:一年级一班,对应于字段b的值是:张三,李四,等等,对应于字段c的值是123456789123456789,对应于字段d的值是13000000000或者13200000000。
37.步骤s103,将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则。
38.在本实施例中,其中一条预设规则是位数为18位的阿拉伯数字,或者位数是18位,前17位均为阿拉伯数字,第18位可以为字母。该预设规则与身份证号对应的值相匹配,则将该预设规则作为字段c的校验规则。
39.另外一条预设规则是位数为11位的阿拉伯数字,此条预设规则与电话号码对应的值相匹配,则将此条预设规则作为字段d的校验规则。
40.通过上述步骤,与相关技术相比,本技术采用完全不同于相关技术的路径,本技术从数据库中的对象所对应的值出发,经由一系列预设规则,通过对象所对应的值与预设规则匹配,最终生成可用于检验非关系型数据库的校验规则,本技术旨在遍历非关系型数据库中的数据值而不依赖表结构描述,来自动生成表单校验规则。解决了相关技术中存在的现有的表单验证规则生成技术不支持非关系型数据库的问题,实现了支持非关系型数据库的表单验证方法的技术效果,提高了非关系型数据库的表单验证效率,大大的降低人力成本。
41.在其中的一些实施例中,将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则,包括:确定字段名称所对应的数据集合中的数据的属性;确定预设规则库里的预设规则的属性;根据数据的属性与预设规则的属性确定数据与预设规则的对应关系,根据对应关系,将数据与预设规则进行匹配,依据匹配结果生成字段的校验规则。
42.具体的,以某单位体温登记表为例,由于疫情期间,单位都要对员工进行体温测量,并记录数据,以便后期查阅,该体温登记表包括工号、姓名和体温三个字段。每天测量每个员工的体温,并登记。
43.遍历字段所对应的数值时,先确定字段所对应的数值的属性,在本实施例中,例
如,先确定字段对应的数值是否均是汉字这一属性,若字段对应的数值均是汉字,就确定字段对应的数值的属性是汉字,再确定预设规则库里的预设规则的属性,然后从预设规则库里筛选预设规则的属性也全是汉字的预设规则,筛选出预设规则的属性全是汉字的预设规则后,将属性全是汉字的字段与其匹配,若字段对应的数值与该预设规则匹配成功,则该字段对应的校验规则就是预设规则。
44.通过上述步骤,本实施例可以提高匹配的速度,无需与预设规则库里的所有预设规则一一匹配,仅需匹配预设规则库里包含有汉字属性的规则即可,可以节省大量的时间。
45.在其中的一些实施例中,将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则,包括:
46.确定字段名称所对应的数据集合中的数据;
47.确定预设规则库里的预设规则;
48.逐一将数据与规则进行匹配,并依据匹配结果生成字段的校验规则。
49.在本实施例中,还以上述某单位体温登记表为例,先确定字段对应的数值,再确定预设规则库里的预设规则,将该字段对应的数值与预设规则库里的预设规则逐一进行匹配,例如,字段为体温的数值,该数值均为10进制的阿拉伯数字且带有1位小数,将该数值集合中的任一数值与预设规则库里的任一规则进行匹配,直至匹配到预设规则也是为10进制的阿拉伯数字且带有1位小数的规则,将该预设规则作为校验规则。
50.在其中的一些实施例中,遍历对象集合,获取对象集合中的字段名称集合和每个字段名称所对应的数据集合之前,非关系型数据库的表单校验规则生成方法还包括:将对象集合中的对象格式转换成编程语言所支持的格式。
51.在mongodb数据库中,数据以bson(binary serialized document format,)格式存储,其中,bson是一种计算机数据交换格式,主要被用作mongodb数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(mongodb中称为“对象”或“文档”)以及mongodb中的各种数据类型。bson之名缘于json,含义为binary json(二进制json)。由于大多数编程语言对bson没有原生支持,必须将mongodb数据库中的数据格式进行一次转换,才能够在程序代码中访问到mongodb数据库中的数据。
52.在本实施例中,由于bson格式的数据是源数据,源数据不能直接被访问,将数据格式为bson的数据转为数据格式为map的数据。转换后的数据可以直接遍历键,也可以用键来访问数据格式为map的数据。
53.在其中的一些实施例中,将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则之后,方法还包括:获取每个字段名称所对应的数据集合中的数据;判断数据是否与预设规则库里的预设规则匹配,在数据与规则匹配时,依据匹配结果生成字段的校验规则,在数据与规则均不匹配时,标记出数据对应的字段。
54.在本实施例中,还以上述某单位体温登记表为例,先确定字段所对应的数值,以字段姓名为例,将字段为姓名所对应的数值与预设规则库里的预设规则一一匹配,当字段为姓名的数值匹配到相应的预设规则时,将该预设规则作为校验规则。比如该条预设规则是:该字段对应的数值均为汉字,且汉字的数量是2个、3个或4个中的一种。将该预设规则作为校验规则。
55.当字段对应的数值与预设规则库里的所有预设规则均不能匹配时,标记出该数据对应的字段名称,提醒编程人员此字段没有找到预设规则。
56.例如,该公司的工号是以位数为6位的流水序号,比如,000001、000002
……
57.999999。当员工数量达到999999个时,若再有新入职的员工入职,将没有工号给新员工分配。公司决定新员工的工号位数还是6位不变,将工号的首位定为字母,比如,a00001、a00002、d90003、e37777等,将字段所对应的数值与预设规则进行匹配时,没有匹配到位数为6位的数值所对应的预设规则。将该字段对应的数据标记出来,提醒编程人员此字段没有找到预设规则,未能为该字段生成校验规则。
58.在其中的一些实施例中,在数据与规则均不匹配时,标记出数据对应的字段,非关系型数据库的表单校验规则生成方法还包括:给数据对应的字段编制校验规则。
59.在字段所对应的数据不能匹配到相应的预设规则时,将此字段标记出来,提醒编程人员此字段没有找到预设规则,未能为该字段生成校验规则,编程人员需根据该字段的特征,为该字段编制出校验规则,并将该校验规则添加至预设规则库内,并预设规则库内的预设规则。
60.在本实施例中,例如,为工号所对应的数值编制一条校验规则,该校验规则是位数是6位,首位为字母或者数字,其余五位均为数字的规则。
61.并将该校验规则添加进预设规则库内,并更新预设规则库内的预设规则。
62.在其中的一些实施例中,遍历对象集合,依次获取对象集合中的字段名称集合和每个字段名称所对应的数据集合,包括:遍历非关系型数据库中的获取到的所有对象的字段,并依据遍历结果获取对象集合中的字段名称集合;遍历对象集合中的字段名称集合所对应的数据,并依据遍历结果获取所有字段的名称所对应的数据集合。
63.下面通过优选实施例对本实施例进行描述和说明。
64.图2是本优选实施例的非关系型数据库的表单校验规则生成方法的流程图,如图2所示,该流程包括如下步骤:
65.s201:确定表名称,依据表名称从非关系型数据库中确定与表名称对应的对象集合。
66.s202:遍历非关系型数据库中的获取到的所有对象的字段,并依据遍历结果获取对象集合中的字段名称集合。
67.s203:遍历对象集合中的字段名称集合所对应的数据,并依据遍历结果获取所有字段的名称所对应的数据集合。
68.s204:将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则。
69.在本实施例中,例如一次疫情初始期间,a单位进行了对员工每日体温调查,该表单共有工号、姓名、体温等3个字段,初次记录数据时,并没有对数据库中的表设置验证规则,因此,事后需要人工清洗数据,例如,是否存在有中文句号误用为小数点、将表中的所有对应阿拉伯数字的中文字转换成阿拉伯数字。
70.在疫情规模降低后,停止了对该表单的收集,将原有数据清洗后保存。后来,又因疫情反复,a单位重启每日收集员工体温数据,依据上述表单的信息,可以快速总结提炼出表单验证规则。例如,可通过历史数据得出,姓名字段必须为中文字符,体温字段必须为10
进制阿拉伯数字且带有1位小数,用于后续的提交验证,免去或减少人工对数据进行清洗的工作量。
71.本技术旨在使用真实数据来总结规则,并使用该规则用于指导后续运行。若不通过本技术的方法,只能依靠软件工程师人工整理或总结数据库中各类字段的表单验证规则。
72.在本实施例中还提供了一种非关系型数据库的表单校验规则生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
73.图3是本实施例的非关系型数据库的表单校验规则生成装置的结构框图,如图3所示,该装置包括:确定模块,获取模块和生成模块;
74.确定模块,用于依据表名称从非关系型数据库中确定与表名称对应的对象集合;
75.获取模块,用于通过遍历对象集合,依次获取对象集合中的字段名称集合和每个字段名称所对应的数据集合;
76.生成模块;用于将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则。
77.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
78.在本实施例中还提供了一种非关系型数据库的表单校验规则生成系统,包括:终端设备和服务器设备;其中,所述终端设备连接服务器设备;所述终端设备用于发送用户的请求指令;所述服务器设备用于执行上述任一项方法实施例中的步骤。
79.在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
80.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
81.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
82.s1,确定表名称,依据表名称从非关系型数据库中确定与表名称对应的对象集合。
83.s2,遍历对象集合,依次获取对象集合中的字段名称集合和每个字段名称所对应的数据集合。
84.s3,将每个字段名称所对应的数据集合中的数据与预设规则库里的预设规则进行匹配,依据匹配结果生成字段的校验规则。
85.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
86.此外,结合上述实施例中提供的非关系型数据库的表单校验规则生成方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种非关系型数据库的表单校验规则生成方
法。
87.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。
88.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。
[0089]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
[0090]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献