一种流水号存取控制方法及系统与流程

文档序号:11201551阅读:635来源:国知局
一种流水号存取控制方法及系统与流程

本发明涉及信息处理技术领域,具体为一种流水号存取控制方法及系统。



背景技术:

流水号在彩票销售系统中可以用来唯一标识一张彩票,并记录销售票信息,在售票、兑奖、退票等业务中都会使用彩票流水号进行信息识别。在销售彩票时系统会将彩票的流水号与已销售票的流水号进行比较以便初步验证投注票的合法性,售票成功时则会保存该票的流水号;在执行取消票和退票等业务时系统也需要根据彩票流水号来判断待该票是否已销售。

目前,流水号主要使用数据库存储,每一个流水号至少用一个字节来存储,随着流水号数量的增加,系统所需的存储空间将会非常大,而且数据库复杂的操作也会显著降低流水号的存取操作效率。内存数据库虽然可以提高数据访问效率,但仍然相对复杂,且容易产生数据丢失等安全问题。因此,当前的流水号存取方法无法满足日益增长的彩票业务需求。



技术实现要素:

为了克服上述所指出的现有技术的缺陷,本发明人对此进行了深入研究,在付出了大量创造性劳动后,从而完成了本发明。

具体而言,本发明所要解决的技术问题是:提供一种流水号存取控制方法,以解决上述现有技术提供的流水号存取方法无法满足当前日益增长的彩票业务需求的问题。

为解决上述技术问题,本发明的技术方案是:

一种流水号存取控制方法,所述方法包括下述步骤:

预先创建位图数据和存储文件,其中,所述位图数据中包含有n+1位存储位,每一个存储位用来存储一个流水号所对应的编码数据,每一个存储位在所述位图数据中的逻辑位置与所述存储位对应的流水号之间存在一一对应的关系,所述存储位在所述位图数据中的逻辑位置与所述逻辑位置在所述存储文件中的物理位置一一对应;

接收并解析用户对当前流水号的操作指令,所述操作指令包括对所述流水号进行查询、添加、删除操作的指令;

根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作。

作为一种改进的方案,所述根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的步骤具体包括下述步骤:

当所述操作指令为流水号的添加指令时,将所述当前流水号对应的编码数据修改到对应的位图数据的存储位上。

作为一种改进的方案,所述根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的步骤具体包括下述步骤:

当所述操作指令为流水号的查询指令时,判断当前流水号k是否存在;

当判定当前流水号k存在时,计算得到当前流水号k在位图数据中的逻辑位置为k+1;

根据所述位图数据的逻辑位置k+1,计算得到当前流水号k在存储文件的物理位置k+1;

打开所述存储文件,并定位到物理位置为k+1的存储位置,读出所述流水号k;

当判定当前流水号k不存在时,则结束。

作为一种改进的方案,所述当所述操作指令为流水号的查询指令时,判断当前流水号是否存在的步骤具体包括下述步骤:

获取存储文件的大小;

根据每一个位图数据中每一位存储位的长度,计算位图数据的最大流水号;

如果当前流水号k大于该最大流水号,则确定所述待查询的流水号不存在;

如果前流水号k小于等于该最大流水号,则确定所述待查询的流水号存在,并继续执行所述计算得到当前流水号k在位图数据中的逻辑位置为k+1的步骤。

作为一种改进的方案,所述根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的步骤具体包括下述步骤:

当所述操作指令为流水号删除指令时,计算得到当前流水号在位图数据中的逻辑位置;

根据所述位图数据的逻辑位置,计算得到当前流水号在存储文件的物理位置;

打开所述存储文件,并定位到物理位置,删除所述流水号,即在位图数据中将所述逻辑位置的存储位修改为未存储状态。

本发明的另一目的在于提供一种流水号存取控制系统,所述系统包括:

预处理模块,用于预先创建位图数据和存储文件,其中,所述位图数据中包含有n+1位存储位,每一个存储位用来存储一个流水号所对应的编码数据,每一个存储位在所述位图数据中的逻辑位置与所述存储位对应的流水号之间存在一一对应的关系,所述存储位在所述位图数据中的逻辑位置与所述逻辑位置在所述存储文件中的物理位置一一对应;

操作指令接收解析模块,用于接收并解析用户对当前流水号的操作指令,所述操作指令包括对所述流水号进行查询、添加、删除操作的指令;

存取动作执行模块,用于根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作。

作为一种改进的方案,所述存取动作执行模块具体包括:

编码数据修改模块,用于当所述操作指令为流水号的添加指令时,将所述当前流水号对应的编码数据修改到对应的位图数据的存储位上。

作为一种改进的方案,所述存取动作执行模块具体包括:

流水号判断模块,用于当所述操作指令为流水号的查询指令时,判断当前流水号k是否存在;

第一位图逻辑位置计算模块,用于当判定当前流水号k存在时,计算得到当前流水号k在位图数据中的逻辑位置为k+1;

第一存储文件位置计算模块,用于根据所述位图数据的逻辑位置k+1,计算得到当前流水号k在存储文件的物理位置k+1;

查询读取模块,用于打开所述存储文件,并定位到物理位置为k+1的存储位置,读出所述流水号k;

当判定当前流水号k不存在时,则结束。

作为一种改进的方案,所述流水号判断模块具体包括:

存储文件大小获取模块,用于获取存储文件的大小;

最大流水号计算模块,用于根据每一个位图数据中每一位存储位的长度,计算位图数据的最大流水号;

第一确定模块,用于如果当前流水号k大于该最大流水号,则确定所述待查询的流水号不存在;

第二确定模块,用于如果前流水号k小于等于该最大流水号,则确定所述待查询的流水号存在,并继续执行所述计算得到当前流水号k在位图数据中的逻辑位置为k+1的步骤。

作为一种改进的方案,所述存取动作执行模块具体包括:

第二位图逻辑位置计算模块,用于当所述操作指令为流水号删除指令时,计算得到当前流水号在位图数据中的逻辑位置;

第二存储文件位置计算模块,用于根据所述位图数据的逻辑位置,计算得到当前流水号在存储文件的物理位置;

删除模块,用于打开所述存储文件,并定位到物理位置,删除所述流水号,即在位图数据中将所述逻辑位置的存储位修改为未存储状态。

采用了上述技术方案后,本发明的有益效果是:

预先创建位图数据和存储文件,接收并解析用户对当前流水号的操作指令,所述操作指令包括对所述流水号进行查询、添加、删除操作的指令;根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作,通过位图数据来存储流水号,其占用存储空间小,通过位图数据与存储文件的结合,实现高效流水号查询、添加和删除操作,显著提高流水号的存取效率,有效支持大规模业务数据的处理。

附图说明

图1是本发明提供的流水号存取控制方法的实现流程图;

图2是本发明实施例一提供的根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的实现流程图;

图3是本发明实施例二提供的根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的实现流程图;

图4是本发明提供的流水号存储控制系统的结构框图;

图5是本发明提供的流水号判断模块的结构框图。

具体实施方式

下面结合具体的实施例对本发明进一步说明。但这些例举性实施方式的用途和目的仅用来例举本发明,并非对本发明的实际保护范围构成任何形式的任何限定,更非将本发明的保护范围局限于此。

图1示出了本发明提供的流水号存取控制方法的实现流程图,其具体包括下述步骤:

在步骤s101中,预先创建位图数据和存储文件,其中,所述位图数据中包含有n+1位存储位,每一个存储位用来存储一个流水号所对应的编码数据,每一个存储位在所述位图数据中的逻辑位置与所述存储位对应的流水号之间存在一一对应的关系,所述存储位在所述位图数据中的逻辑位置与所述逻辑位置在所述存储文件中的物理位置一一对应。

在步骤s102中,接收并解析用户对当前流水号的操作指令,所述操作指令包括对所述流水号进行查询、添加、删除操作的指令。

在步骤s103中,根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作。

在该实施例中,使用位图数据进行流水号存储,流水号均为整型数字,对非整型流水号则可将其转换为整型后再进行处理。每一位表示一个流水号,约定位图数据中的第一个流水号叫做最小流水号,最后一个流水号叫做最大流水号,任意数值相邻的流水号在位图中也是连续存储,这样一个位图数据即可存储以最小流水号开始的一段连续整型数据。位图数据并不存储流水号的具体值,而是存储重新编码后的编码数据(例如每一位编码数据取值为0或1,值为0表示该位未使用,反之则表示已存储流水号)。根据流水号获取它在位图数据中的逻辑位置,然后填充该位(例如编码为0或1),反之根据每一位的值和它在位图中的位置亦可得知它表示的流水号数值;

将流水号位图数据按位顺序存储在二进制文件中,位图中的每一位均使用固定长度存储,根据存储长度可和每一位的逻辑位置获取它在文件中物理存储位置。同样,根据文件的大小即可获取当前位图长度。通过文件的定位和读写操作即可操作位图数据中的每一位。

作为本发明的另一个实施例,根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的实现流程图,其具体包括下述步骤:

当所述操作指令为流水号的添加指令时,将所述当前流水号对应的编码数据修改到对应的位图数据的存储位上。

上述给出的是流水号添加的流程,在此不再赘述。

作为本发明的另一个实施例,图2示出了本发明提供的根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的实现流程图,其具体包括下述步骤:

在步骤s201中,当操作指令为流水号的查询指令时,判断当前流水号k是否存在。

在步骤s202中,当判定当前流水号k存在时,计算得到当前流水号k在位图数据中的逻辑位置为k+1。

在步骤s203中,根据所述位图数据的逻辑位置k+1,计算得到当前流水号k在存储文件的物理位置k+1。

在步骤s204中,打开所述存储文件,并定位到物理位置为k+1的存储位置,读出所述流水号k。

在步骤s205中,当判定当前流水号k不存在时,则结束。

其中,上述步骤s201的具体实现为:

(1)获取存储文件的大小;

(2)根据每一个位图数据中每一位存储位的长度,计算位图数据的最大流水号;

(3)如果当前流水号k大于该最大流水号,则确定所述待查询的流水号不存在;

(4)如果前流水号k小于等于该最大流水号,则确定所述待查询的流水号存在,并继续执行所述计算得到当前流水号k在位图数据中的逻辑位置为k+1的步骤。

上述给出了流水号的查询的过程。

作为本发明的另一个实施例,图3示出了本发明提供的根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作的实现流程图,其具体包括下述步骤:

在步骤s301中,当所述操作指令为流水号删除指令时,计算得到当前流水号在位图数据中的逻辑位置。

在步骤s302中,根据所述位图数据的逻辑位置,计算得到当前流水号在存储文件的物理位置。

在步骤s303中,打开所述存储文件,并定位到物理位置,删除所述流水号,即在位图数据中将所述逻辑位置的存储位修改为未存储状态。

该实施例给出的流水号删除的工作过程。

图4示出了本发明提供的流水号存取控制系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。

预处理模块11用于预先创建位图数据和存储文件,其中,所述位图数据中包含有n+1位存储位,每一个存储位用来存储一个流水号所对应的编码数据,每一个存储位在所述位图数据中的逻辑位置与所述存储位对应的流水号之间存在一一对应的关系,所述存储位在所述位图数据中的逻辑位置与所述逻辑位置在所述存储文件中的物理位置一一对应;操作指令接收解析模块12接收并解析用户对当前流水号的操作指令,所述操作指令包括对所述流水号进行查询、添加、删除操作的指令;存取动作执行模块13根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作。

在该实施例中,存取动作执行模块13具体包括:

编码数据修改模块14,用于当所述操作指令为流水号的添加指令时,将所述当前流水号对应的编码数据修改到对应的位图数据的存储位上。

作为另一个实施例,该存取动作执行模块13还包括:

流水号判断模块16,用于当所述操作指令为流水号的查询指令时,判断当前流水号k是否存在;

第一位图逻辑位置计算模块17,用于当判定当前流水号k存在时,计算得到当前流水号k在位图数据中的逻辑位置为k+1;

第一存储文件位置计算模块18,用于根据所述位图数据的逻辑位置k+1,计算得到当前流水号k在存储文件的物理位置k+1;

查询读取模块19,用于打开所述存储文件,并定位到物理位置为k+1的存储位置,读出所述流水号k;

当判定当前流水号k不存在时,则结束。

其中,如图5所示,该流水号判断模块16具体包括:

存储文件大小获取模块20,用于获取存储文件的大小;

最大流水号计算模块21,用于根据每一个位图数据中每一位存储位的长度,计算位图数据的最大流水号;

第一确定模块22,用于如果当前流水号k大于该最大流水号,则确定所述待查询的流水号不存在;

第二确定模块23,用于如果前流水号k小于等于该最大流水号,则确定所述待查询的流水号存在,并继续执行所述计算得到当前流水号k在位图数据中的逻辑位置为k+1的步骤。

作为另一个实施例,该存取动作执行模块13还包括:

第二位图逻辑位置计算模块24,用于当所述操作指令为流水号删除指令时,计算得到当前流水号在位图数据中的逻辑位置;

第二存储文件位置计算模块25,用于根据所述位图数据的逻辑位置,计算得到当前流水号在存储文件的物理位置;

删除模块15,用于打开所述存储文件,并定位到物理位置,删除所述流水号,即在位图数据中将所述逻辑位置的存储位修改为未存储状态。

其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。

在本发明实施例中,预先创建位图数据和存储文件,接收并解析用户对当前流水号的操作指令,所述操作指令包括对所述流水号进行查询、添加、删除操作的指令;根据解析到的操作指令,对当前流水号进行文件物理位置和位图逻辑位置的转换,并执行所述是操作指令相匹配的存取动作,通过位图数据来存储流水号,其占用存储空间小,通过位图数据与存储文件的结合,实现高效流水号查询、添加和删除操作,显著提高流水号的存取效率,有效支持大规模业务数据的处理。

应当理解,这些实施例的用途仅用于说明本发明而非意欲限制本发明的保护范围。此外,也应理解,在阅读了本发明的技术内容之后,本领域技术人员可以对本发明作各种改动、修改和/或变型,所有的这些等价形式同样落于本申请所附权利要求书所限定的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1