CN111125104A - 数据库表的更新方法、装置、计算机设备及存储介质 - Google Patents
数据库表的更新方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111125104A CN111125104A CN201911326226.XA CN201911326226A CN111125104A CN 111125104 A CN111125104 A CN 111125104A CN 201911326226 A CN201911326226 A CN 201911326226A CN 111125104 A CN111125104 A CN 111125104A
- Authority
- CN
- China
- Prior art keywords
- data
- database table
- target
- detail
- identifier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012544 monitoring process Methods 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
- G06Q10/0875—Itemisation or classification of parts, supplies or services, e.g. bill of materials
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2308—Concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库表的更新方法、装置、计算机设备及存储介质,属于计算机技术领域。该方法包括:监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据;将销售明细数据和扣款明细数据写入第一数据库表中,第一数据库表用于存储需要结算的明细数据;监测第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识;根据目标明细数据的数据标识更新第二数据库表,第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。在本申请中,对于第一数据库表,只写入数据,不修改数据,这样就不会产生锁冲突的问题,从而可以提高数据库表的更新效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据库表的更新方法、装置、计算机设备及存储介质。
背景技术
在结算***中,以销定结的结算模式越来越盛行。以销定结是指供应商提供的货物被销售出去多少,就向供应商结算多少货款。这样,就需要实时监测入库数据、出库数据以及因货物不满足要求的扣款数据,来完成货款的结算。
目前,可以通过数据库表记录销售明细数据和扣款明细数据。也即是,通过监测入库数据和出库数据,从而在数据库表中写入销售明细数据,通过监测因货物不满足要求的扣款数据,从而在数据库表中写入扣款明细数据。当完成一部分货款的结算时,可以对数据库表中对应销售明细数据的结算状态进行修改。但是,为了保证数据的一致性,如果一个进程当前正在该数据库表中写入某一数据,那么就需要将该数据锁定。在该数据被锁定的过程中,如果另一个进程需要修改该数据的结算状态,此时就会产生锁冲突的问题。对于这种情况,另一进程就会频繁的重试,直到不存在锁冲突时修改该数据的结算状态。这样就会降低数据库表的更新效率。
发明内容
本申请提供了一种数据库表的更新方法、装置、计算机设备及存储介质,可以提升数据库的更新效率。所述技术方案如下:
一方面,提供了一种数据库表的更新方法,所述方法包括:
监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据;
将所述销售明细数据和所述扣款明细数据写入第一数据库表中,所述第一数据库表用于存储需要结算的明细数据;
监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识;
根据所述目标明细数据的数据标识更新第二数据库表,所述第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。
可选地,所述监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识,包括:
获取当前时刻与上一更新时刻之间生成的第一结算数据单,所述上一更新时刻是指最近一次更新所述第二数据库表的时刻;
从所述第一数据库表中读取所述第一结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为所述目标明细数据的数据标识。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识范围;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
读取所述第二数据库表中存储的一个或多个数据标识范围;
如果所述目标明细数据的数据标识与目标数据标识范围的边界连续,则根据所述目标明细数据的数据标识,更新所述第二数据库表中所述目标数据标识范围的边界,所述目标数据标识范围为所述一个或多个数据标识范围中的一个。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
将所述目标明细数据的数据标识写入所述第二数据库表中。
可选地,所述监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识,包括:
获取当前时刻与上一更新时刻之间置为无效的第二结算数据单,所述上一更新时刻是指最近一次更新所述第二数据库表的时刻;
从所述第一数据库表中读取所述第二结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为所述目标明细数据的数据标识。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识范围;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
读取所述第二数据库表中存储的一个或多个数据标识范围;
如果所述目标明细数据的数据标识为目标数据标识范围的边界,则根据所述目标明细数据的数据标识,更新所述第二数据库表中的所述目标数据标识范围的边界,所述目标数据标识范围为所述一个或多个数据标识范围中的一个;
如果所述目标明细数据的数据标识位于所述目标数据标识范围内,且不是所述目标数据标识范围的边界,则根据所述目标明细数据的数据标识,将所述第二数据库表中的所述目标数据标识范围拆分为两个数据标识范围。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
将所述第二数据库表中所述目标明细数据的数据标识删除。
另一方面,提供了一种数据库表的更新装置,所述装置包括:
第一监测模块,用于监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据;
写入模块,用于将所述销售明细数据和所述扣款明细数据写入第一数据库表中,所述第一数据库表用于存储需要结算的明细数据;
第二监测模块,用于监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识;
更新模块,用于根据所述目标明细数据的数据标识更新第二数据库表,所述第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。
可选地,所述第二检测模块包括:
第一获取单元,用于获取当前时刻与上一更新时刻之间生成的第一结算数据单,所述上一更新时刻是指最近一次更新所述第二数据库表的时刻;
第一读取单元,用于从所述第一数据库表中读取所述第一结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为所述目标明细数据的数据标识。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识范围;
所述更新模块包括:
第二读取单元,用于读取所述第二数据库表中存储的一个或多个数据标识范围;
第一更新单元,用于如果所述目标明细数据的数据标识与目标数据标识范围的边界连续,则根据所述目标明细数据的数据标识,更新所述第二数据库表中所述目标数据标识范围的边界,所述目标数据标识范围为所述一个或多个数据标识范围中的一个。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识;
所述更新模块包括:
写入单元,用于将所述目标明细数据的数据标识写入所述第二数据库表中。
可选地,所述第二检测模块包括:
第二获取单元,用于获取当前时刻与上一更新时刻之间置为无效的第二结算数据单,所述上一更新时刻是指最近一次更新所述第二数据库表的时刻;
第三读取单元,用于从所述第一数据库表中读取所述第二结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为所述目标明细数据的数据标识。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识范围;
所述更新模块包括:
第四读取单元,用于读取所述第二数据库表中存储的一个或多个数据标识范围;
第二更新单元,用于如果所述目标明细数据的数据标识为目标数据标识范围的边界,则根据所述目标明细数据的数据标识,更新所述第二数据库表中的所述目标数据标识范围的边界,所述目标数据标识范围为所述一个或多个数据标识范围中的一个;
拆分单元,用于如果所述目标明细数据的数据标识位于所述目标数据标识范围内,且不是所述目标数据标识范围的边界,则根据所述目标明细数据的数据标识,将所述第二数据库表中的所述目标数据标识范围拆分为两个数据标识范围。
可选地,所述第二数据库表用于存储已结算的明细数据的数据标识;
所述更新模块包括:
删除单元,用于将所述第二数据库表中所述目标明细数据的数据标识删除。
另一方面,提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述所述的数据库表的更新方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的数据库表的更新方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的数据库表的更新方法的步骤。
本申请提供的技术方案至少可以带来以下有益效果:
在本申请中,可以将销售明细数据和扣款明细数据写入第一数据库表,并监测第二数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识。之后,不再对第一数据库表中的目标明细数据的结算状态进行修改,而是根据目标明细数据的数据标识,更新第二数据库表中存储的数据标识或者数据标识范围。也即是,在本申请中,对于第一数据库表,只进行数据的写入,不进行数据的修改,这样就不会产生锁冲突的问题,进而就不会出现频繁重试的现象,从而提高数据库表的更新效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种数据库表的更新方法的流程图;
图3是本申请实施例提供的一种第一数据库表的示意图;
图4是本申请实施例提供的一种第二数据库表的示意图;
图5是本申请实施例提供的一种数据库表的更新装置的结构示意图;
图6是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的数据库表的更新方法进行详细的解释说明之前,先对本申请实施例提供的实施环境进行介绍。
请参考图1,图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境主要描述以销定结的***架构。该***架构包括入库数据统计模块101、出库数据统计模块102、处理模块103、结算模块104和计费模块105。
入库数据统计模块101用于统计入库数据,比如,供应商提供的货品的数量、类别等信息。出库数据统计模块102用于统计出库数据,比如,销售的货品的数量、类别等信息。由于通常情况下,可能存在货品调拨、盘盈、盘亏的情况,因此,处理模块103用于对这些情况进行处理。对于调拨和盘盈的情况,还可以将处理结果发送给入库数据统计模块101,以便于入库数据统计模块101对入库数据进行更新。对于盘亏的情况,还可以将处理结果发送给出库数据统计模块102,以便于出库数据统计模块102对出库数据进行更新。
结算模块104用于统计向供应商结算货款的一些数据,其中包括因货品不满足要求的扣款数据。同时,结算模块104还用于生成一些结算数据单,或者确定一些结算数据单无效。
计费模块105用于监测入库数据统计模块101统计的入库数据,以及出库数据统计模块102统计的出库数据,从而确定销售明细数据。同时,计费模块105还可以监测结算模块104,以确定扣款明细数据,以及结算模块105生成的一些结算数据单,或者一些被置为无效的结算数据单。计费模块105可以将确定的销售明细数据和扣款明细数据写入第一数据库表,还可以将第一数据库表中结算状态发生变化的明细数据的数据标识写入第二数据库表中。
需要说明的是,上述各个模块可以集成在同一台计算机设备上,也可以单独集成在对应的计算机设备上。这些计算机设备可以为终端,也可以为服务器。
其中,终端可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如PC(Personal Computer,个人计算机)、手机、智能手机、PDA(Personal Digital Assistant,个人数字助手)、可穿戴设备、掌上电脑PPC(Pocket PC)、平板电脑、智能车机、智能电视、智能音箱等。
服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
本领域技术人员应能理解上述终端和服务器仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接下来对本申请实施例提供的数据库表的更新方法进行详细的解释说明。
图2是本申请实施例提供的一种数据库表的更新方法的流程图,该方法应用于计算机设备。请参考图2,该方法包括如下步骤。
步骤201:监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据。
由于入库数据主要包括供应商提供的货品的信息,比如,货品的数量、类别等信息。出库数据主要包括销售出去的货品的信息,比如,货品的数量、类别等信息。因此,通过监测入库数据和出库数据,可以确定当前时刻的销售明细数据。其中,销售明细数据可以包括销售出去的货品的数量、类别、销售时间等信息。
另外,由于供应商提供的货品可能有时候不能满足要求,在这种情况下,可能需要进行扣款,因此,通过监测扣款数据,可以确定扣款明细数据。其中,扣款明细数据可以包括需要扣款的货品的数量、类别、扣款金额等信息。
需要说明的是,销售明细数据和扣款明细数据不一定都会存在,也即是,通过入库数据、出库数据以及扣款数据,在当前时刻可能存在销售明细数据和扣款明细数据中的至少一个。也即是,在当前时刻可能存在销售明细数据,但不存在扣款明细数据。或者,在当前时刻可能存在扣款明细数据,但不存在销售明细数据。又或者,在当前时刻可能同时存在销售明细数据和扣款明细数据。
步骤202:将确定的销售明细数据和扣款明细数据写入第一数据库表中,第一数据库表用于存储需要结算的明细数据。
不管是销售明细数据还是扣款明细数据,在向供应商结算货款时,都需要考虑到,因此,可以将确定的销售明细数据和扣款明细数据写入同一张数据库表中,也即是第一数据库表。通过第一数据库表可以存储所有需要结算的明细数据。
由于扣款数据是针对已经销售出去但发现货品不满足要求的情况来说的,因此,对于这些货品来说,还是需要向供应商结算一部分货款的。这样,第一数据库表中会存储这些货品对应的销售明细数据,以及扣款明细数据。在这种情况下,可以将同一货品的销售明细数据和扣款明细数据进行融合,也可以将同一货品的销售明细数据和扣款明细数据单独存储,本申请实施例对此不做限定。
其中,当需要将同一货品的销售明细数据和扣款明细数据进行融合时,第一数据库表中,针对同一货品可能只存在一条数据记录,从而会对应同一个数据标识。但是,当需要将同一货品的销售明细数据和扣款明细数据单独存储时,第一数据库表中,针对同一货品可能会存在两条数据记录,此时,可以设置这两条数据记录对应同一数据标识,也可以设置这两条数据记录对应不同的数据标识。
需要说明的是,第一数据库表中的每条明细数据也设置有结算状态,但是,在本申请实施例中,由于不对第一数据库表中的结算状态进行更新,因此,第一数据库表中的结算状态可以默认都设置为未结算。
步骤203:监测第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识。
由于以销定结的模式是销售出去多少货品,就向供应商结算多少货品的货款,且第一数据库表中存储有需要结算的明细数据。因此,需要对第一数据库表中的每条明细数据的结算状态进行监测,以确定结算状态发生变化的目标明细数据的数据标识。
其中,结算状态发生变化是指从未结算变化为已结算,或者从已结算变化为未结算。其中,从已结算变化为未结算是指:向供应商结算某个货品的货款之后,如果因为某些原因需要作废这个货品的结算单,那么,这个货品的结算状态就会从已结算变化为未结算。或者,生成结算数据单,但是实际上并未向供应商结算货款,且生成的结算数据单又被置为无效。
基于上述描述,结算状态发生变换可以是指从未结算变化为已结算,也可以是指从已结算变化为未结算。因此,接下来分为两种情况,对监测第一数据库中的每条明细数据的结算状态的实现过程进行说明。
第一种情况、获取当前时刻与上一更新时刻之间生成的第一结算数据单,上一更新时刻是指最近一次更新第二数据库表的时刻。从第一数据库表中读取第一结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为目标明细数据的数据标识。
也即是,对于结算状态从未结算变化未已结算的情况下,可以直接获取新生成的结算数据单,称为第一结算数据单。之后,可以从第一数据库表中读取第一结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为目标明细数据的数据标识。
需要说明的是,结算数据单中通常可以包括已结算的货品的数量、类型、结算金额、销售时间等等。因此,可以根据这些信息,从第一数据库表中读取第一结算数据单对应的明细数据的数据标识。
第二种情况、获取当前时刻与上一更新时刻之间置为无效的第二结算数据单,上一更新时刻是指最近一次更新第二数据库表的时刻。从第一数据库表中读取第二结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为目标明细数据的数据标识。
也即是,对于结算状态从已结算变化为未结算的情况下,可以直接获取被置为无效的结算数据单或者作废的结算数据单,称为第二结算数据单。之后,可以从第一数据库表中读取第二结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为目标明细数据的数据标识。
步骤204:根据目标明细数据的数据标识更新第二数据库表,第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。
基于上述描述,结算状态发生变化存在两种情况,进而使确定目标明细数据的数据标识存在两种情况,因此,接下来也分为两种情况,对根据目标明细数据的数据标识更新第二数据库表的方式进行说明。
第一种情况、结算状态从未结算变化未已结算
由于第二数据库表中可以存储已结算的明细数据的数据标识,也可以存储已结算的明细数据的数据标识范围。因此接下来分为两种情况来说明。
(1)第二数据库表用于存储已结算的明细数据的数据标识范围。此时,根据目标明细数据的数据标识更新第二数据库表的实现过程包括:读取第二数据库表中存储的一个或多个数据标识范围。如果目标明细数据的数据标识与目标数据标识范围的边界连续,则根据目标明细数据的数据标识,更新第二数据库表中目标数据标识范围的边界,目标数据标识范围为该一个或多个数据标识范围中的一个。
由于在这种情况下,结算状态从未结算变化为已结算,且第二数据库表用于存储已结算的明细数据的数据标识范围,因此,目标明细数据的数据标识可能位于某个数据标识范围内,也可能刚好为某个数据标识范围的边界,比如,上边界或者下边界。目标明细数据的数据标识还可能刚好与某个数据标识范围的边界连续。为了便于描述,可以将这个数据标识范围称为目标数据标识范围。
如果目标明细数据的数据标识位于目标数据标识范围内,或者目标明细数据的数据标识为目标数据标识范围的边界,那么可以结束操作。如果目标明细数据的数据标识与目标数据标识范围的边界连续,那么可以根据目标明细数据的数据标识,更新第二数据库表中目标数据标识范围的边界。
示例地,如果目标明细数据的数据标识与目标数据标识范围的下边界连续,那么,可以直接将第二数据库表中目标数据标识范围的下边界替换为目标明细数据的数据标识。如果目标明细数据的数据标识与目标数据标识范围的上边界连续,那么,可以直接将第二数据库表中目标数据标识范围的上边界替换为目标明细数据的数据标识。
比如,假设第一数据库表如图3所示,结算状态为1是指处于未结算状态,从第一数据库表中读取出的目标明细数据的数据标识为100000。假设第二数据库表如图4所示。由于目标明细数据的数据标识与目标数据标识范围100001-200001的下边界连续,那么,可以直接将第二数据库表中目标数据标识范围的下边界替换为100000。
需要说明的是,第二数据库表中除了将数据标识或者数据标识范围作为一条记录存储之外,还存储有每条记录的标识,以及每条记录对应的明细数据,该明细数据可以从第一数据库表中读取。比如,如图4所示,第一列为每条记录的标识,最后一列为每条记录对应的明细数据。
(2)第二数据库表用于存储已结算的明细数据的数据标识。根据目标明细数据的数据标识更新第二数据库表的实现过程包括:将目标明细数据的数据标识写入第二数据库表中。
由于在这种情况下,第二数据库表用于存储已结算的明细数据的数据标识,因此,可以直接将目标明细数据的数据标识写入第二数据库表中。
第二种情况、结算状态从已结算变化为未结算
与上述同理,由于第二数据库表中可以存储已结算的明细数据的数据标识,也可以存储已结算的明细数据的数据标识范围。因此接下来分为两种情况来说明。
(1)第二数据库表用于存储已结算的明细数据的数据标识范围。根据目标明细数据的数据标识更新第二数据库表的实现过程包括:读取第二数据库表中存储的一个或多个数据标识范围。如果目标明细数据的数据标识为目标数据标识范围的边界,则根据目标明细数据的数据标识,更新第二数据库表中的目标数据标识范围的边界,目标数据标识范围为该一个或多个数据标识范围中的一个。如果目标明细数据的数据标识位于目标数据标识范围内,且不是目标数据标识范围的边界,则根据目标明细数据的数据标识,将第二数据库表中的目标数据标识范围拆分为两个数据标识范围。
由于在这种情况下,结算状态从已结算变化为未结算,且第二数据库表用于存储已结算的明细数据的数据标识范围,因此,目标明细数据的数据标识可能位于某个数据标识范围内,也可能刚好为某个数据标识范围的边界,比如,上边界或者下边界。为了便于描述,可以将这个数据标识范围称为目标数据标识范围。
如果目标明细数据的数据标识为目标数据标识范围的边界,那么根据目标明细数据的数据标识,更新第二数据库表中目标数据标识范围的边界。示例地,可以直接将第二数据库表中目标数据标识范围的下边界替换为目标数据标识范围内与目标明细数据的数据标识连续的一个数据标识。
如果目标明细数据的数据标识位于目标数据标识范围内,且不是目标数据标识范围的边界,那么可以根据目标明细数据的数据标识,将第二数据库表中的目标数据标识范围拆分为两个数据标识范围。示例地,从目标明细数据的数据标识处进行拆分,从而得到两个数据标识范围。
继续上述举例,假设第一数据库表如图3所示,结算状态为1是指处于未结算状态,从第一数据库表中读取出的目标明细数据的数据标识为100100。假设第二数据库表如图4所示。由于目标明细数据的数据标识位于目标数据标识范围内,且不是目标数据标识范围的边界,那么,可以直接将第二数据库表中目标数据标识范围拆分为两个数据标识范围,分别为100001-100099和100101-200001。
(2)第二数据库表用于存储已结算的明细数据的数据标识。根据目标明细数据的数据标识更新第二数据库表的实现过程包括:将第二数据库表中目标明细数据的数据标识删除。
由于在这种情况下,第二数据库表用于存储已结算的明细数据的数据标识,因此,可以直接将第二数据库表中目标明细数据的数据标识删除。
可选地,根据目标明细数据的数据标识更新第二数据库表的实现过程还可以包括:将置为无效的目标明细数据的数据标识写入第二数据库表中。也即是,第二数据库还用于存储置为无效的明细数据的数据标识。通过这些数据标识,可以指示曾经结算过但又被无效的明细数据。
在本申请实施例中,可以将销售明细数据和扣款明细数据写入第一数据库表,并监测第二数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识。之后,不再对第一数据库表中的目标明细数据的结算状态进行修改,而是根据目标明细数据的数据标识,更新第二数据库表中存储的数据标识或者数据标识范围。也即是,在本申请中,对于第一数据库表,只进行数据的写入,不进行数据的修改,这样就不会产生锁冲突的问题,进而就不会出现频繁重试的现象,从而提高数据库表的更新效率。
图5是本申请实施例提供的一种数据库表的更新装置的结构示意图,该数据库表的更新装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部。请参考图5,该装置包括:第一监测模块501、写入模块502、第二监测模块503和更新模块504。
第一监测模块501,用于监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据;
写入模块502,用于将销售明细数据和扣款明细数据写入第一数据库表中,第一数据库表用于存储需要结算的明细数据;
第二监测模块503,用于监测第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识;
更新模块504,用于根据目标明细数据的数据标识更新第二数据库表,第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。
可选地,第二检测模块包括:
第一获取单元,用于获取当前时刻与上一更新时刻之间生成的第一结算数据单,上一更新时刻是指最近一次更新第二数据库表的时刻;
第一读取单元,用于从第一数据库表中读取第一结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为目标明细数据的数据标识。
可选地,第二数据库表用于存储已结算的明细数据的数据标识范围;
更新模块包括:
第二读取单元,用于读取第二数据库表中存储的一个或多个数据标识范围;
第一更新单元,用于如果目标明细数据的数据标识与目标数据标识范围的边界连续,则根据目标明细数据的数据标识,更新第二数据库表中目标数据标识范围的边界,目标数据标识范围为一个或多个数据标识范围中的一个。
可选地,第二数据库表用于存储已结算的明细数据的数据标识;
更新模块包括:
写入单元,用于将目标明细数据的数据标识写入第二数据库表中。
可选地,第二检测模块包括:
第二获取单元,用于获取当前时刻与上一更新时刻之间置为无效的第二结算数据单,上一更新时刻是指最近一次更新第二数据库表的时刻;
第三读取单元,用于从第一数据库表中读取第二结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为目标明细数据的数据标识。
可选地,第二数据库表用于存储已结算的明细数据的数据标识范围;
更新模块包括:
第四读取单元,用于读取第二数据库表中存储的一个或多个数据标识范围;
第二更新单元,用于如果目标明细数据的数据标识为目标数据标识范围的边界,则根据目标明细数据的数据标识,更新第二数据库表中的目标数据标识范围的边界,目标数据标识范围为一个或多个数据标识范围中的一个;
拆分单元,用于如果目标明细数据的数据标识位于目标数据标识范围内,且不是目标数据标识范围的边界,则根据目标明细数据的数据标识,将第二数据库表中的目标数据标识范围拆分为两个数据标识范围。
可选地,第二数据库表用于存储已结算的明细数据的数据标识;
更新模块包括:
删除单元,用于将第二数据库表中目标明细数据的数据标识删除。
在本申请实施例中,可以将销售明细数据和扣款明细数据写入第一数据库表,并监测第二数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识。之后,不再对第一数据库表中的目标明细数据的结算状态进行修改,而是根据目标明细数据的数据标识,更新第二数据库表中存储的数据标识或者数据标识范围。也即是,在本申请中,对于第一数据库表,只进行数据的写入,不进行数据的修改,这样就不会产生锁冲突的问题,进而就不会出现频繁重试的现象,从而提高数据库表的更新效率。
需要说明的是:上述实施例提供的数据库表的更新装置在数据库表的更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据库表的更新装置与数据库表的更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种计算机设备的结构示意图。计算机设备600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的***存储器604,以及连接***存储器604和中央处理单元601的***总线605。计算机设备600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)606,和用于存储操作***613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出***606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到***总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出***606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到***总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为计算机设备600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的***存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,计算机设备600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备600可以通过连接在***总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机***(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中数据库表的更新方法的步骤。例如,所述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的数据库表的更新方法的步骤。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据库表的更新方法,其特征在于,所述方法包括:
监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据;
将所述销售明细数据和所述扣款明细数据写入第一数据库表中,所述第一数据库表用于存储需要结算的明细数据;
监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识;
根据所述目标明细数据的数据标识更新第二数据库表,所述第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。
2.如权利要求1所述的方法,其特征在于,所述监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识,包括:
获取当前时刻与上一更新时刻之间生成的第一结算数据单,所述上一更新时刻是指最近一次更新所述第二数据库表的时刻;
从所述第一数据库表中读取所述第一结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为所述目标明细数据的数据标识。
3.如权利要求2所述的方法,其特征在于,所述第二数据库表用于存储已结算的明细数据的数据标识范围;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
读取所述第二数据库表中存储的一个或多个数据标识范围;
如果所述目标明细数据的数据标识与目标数据标识范围的边界连续,则根据所述目标明细数据的数据标识,更新所述第二数据库表中所述目标数据标识范围的边界,所述目标数据标识范围为所述一个或多个数据标识范围中的一个。
4.如权利要求2所述的方法,其特征在于,所述第二数据库表用于存储已结算的明细数据的数据标识;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
将所述目标明细数据的数据标识写入所述第二数据库表中。
5.如权利要求1所述的方法,其特征在于,所述监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识,包括:
获取当前时刻与上一更新时刻之间置为无效的第二结算数据单,所述上一更新时刻是指最近一次更新所述第二数据库表的时刻;
从所述第一数据库表中读取所述第二结算数据单对应的明细数据的数据标识,将读取的明细数据的数据标识作为所述目标明细数据的数据标识。
6.如权利要求5所述的方法,其特征在于,所述第二数据库表用于存储已结算的明细数据的数据标识范围;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
读取所述第二数据库表中存储的一个或多个数据标识范围;
如果所述目标明细数据的数据标识为目标数据标识范围的边界,则根据所述目标明细数据的数据标识,更新所述第二数据库表中的所述目标数据标识范围的边界,所述目标数据标识范围为所述一个或多个数据标识范围中的一个;
如果所述目标明细数据的数据标识位于所述目标数据标识范围内,且不是所述目标数据标识范围的边界,则根据所述目标明细数据的数据标识,将所述第二数据库表中的所述目标数据标识范围拆分为两个数据标识范围。
7.如权利要求5所述的方法,其特征在于,所述第二数据库表用于存储已结算的明细数据的数据标识;
所述根据所述目标明细数据的数据标识更新第二数据库表,包括:
将所述第二数据库表中所述目标明细数据的数据标识删除。
8.一种数据库表的更新装置,其特征在于,所述装置包括:
第一监测模块,用于监测入库数据、出库数据以及扣款数据,以确定当前时刻的销售明细数据和/或扣款明细数据;
写入模块,用于将所述销售明细数据和所述扣款明细数据写入第一数据库表中,所述第一数据库表用于存储需要结算的明细数据;
第二监测模块,用于监测所述第一数据库表中的每条明细数据的结算状态,以确定结算状态发生变化的目标明细数据的数据标识;
更新模块,用于根据所述目标明细数据的数据标识更新第二数据库表,所述第二数据库表用于存储已结算的明细数据的数据标识或者数据标识范围。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述权利要求1-7任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911326226.XA CN111125104A (zh) | 2019-12-20 | 2019-12-20 | 数据库表的更新方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911326226.XA CN111125104A (zh) | 2019-12-20 | 2019-12-20 | 数据库表的更新方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111125104A true CN111125104A (zh) | 2020-05-08 |
Family
ID=70500712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911326226.XA Pending CN111125104A (zh) | 2019-12-20 | 2019-12-20 | 数据库表的更新方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125104A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345501A (zh) * | 2013-06-27 | 2013-10-09 | 华为技术有限公司 | 数据库更新方法和装置 |
US20140222872A1 (en) * | 2013-02-04 | 2014-08-07 | Bank Of America Corporation | Multi-row database updating for enterprise workflow application |
JP2015197699A (ja) * | 2014-03-31 | 2015-11-09 | 三井住友カード株式会社 | 加盟店提供データ出力システム |
CN106557482A (zh) * | 2015-09-25 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种库存***数据更新方法及装置 |
CN106886938A (zh) * | 2017-02-21 | 2017-06-23 | 驼队重卡(北京)物流信息技术有限责任公司 | 一种大宗商品货运吞吐信息的更新方法及装置 |
CN109409854A (zh) * | 2018-11-01 | 2019-03-01 | 广州品唯软件有限公司 | 一种确定供应商结算账单的方法、装置及客户端 |
CN109684082A (zh) * | 2018-12-11 | 2019-04-26 | 中科恒运股份有限公司 | 基于规则算法的数据清洗方法及*** |
CN110189071A (zh) * | 2019-04-16 | 2019-08-30 | 德邦物流股份有限公司 | 一种实现货品组合的方法及装置 |
-
2019
- 2019-12-20 CN CN201911326226.XA patent/CN111125104A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140222872A1 (en) * | 2013-02-04 | 2014-08-07 | Bank Of America Corporation | Multi-row database updating for enterprise workflow application |
CN103345501A (zh) * | 2013-06-27 | 2013-10-09 | 华为技术有限公司 | 数据库更新方法和装置 |
JP2015197699A (ja) * | 2014-03-31 | 2015-11-09 | 三井住友カード株式会社 | 加盟店提供データ出力システム |
CN106557482A (zh) * | 2015-09-25 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种库存***数据更新方法及装置 |
CN106886938A (zh) * | 2017-02-21 | 2017-06-23 | 驼队重卡(北京)物流信息技术有限责任公司 | 一种大宗商品货运吞吐信息的更新方法及装置 |
CN109409854A (zh) * | 2018-11-01 | 2019-03-01 | 广州品唯软件有限公司 | 一种确定供应商结算账单的方法、装置及客户端 |
CN109684082A (zh) * | 2018-12-11 | 2019-04-26 | 中科恒运股份有限公司 | 基于规则算法的数据清洗方法及*** |
CN110189071A (zh) * | 2019-04-16 | 2019-08-30 | 德邦物流股份有限公司 | 一种实现货品组合的方法及装置 |
Non-Patent Citations (1)
Title |
---|
徐英明: "金蝶K/3软件数据库应用简析", 《中国会计电算化》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4733461B2 (ja) | 計算機システム、管理計算機及び論理記憶領域の管理方法 | |
CN107870981B (zh) | 电子装置、数据表归档处理的方法及存储介质 | |
CN111506559B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN103544153A (zh) | 一种基于数据库的数据更新方法和*** | |
CN108932286B (zh) | 一种数据查询方法及装置 | |
CN104731896A (zh) | 一种数据处理方法及*** | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
CN112597153A (zh) | 一种基于区块链的数据存储方法、装置及存储介质 | |
CN111427971A (zh) | 用于计算机***的业务建模方法、装置、***和介质 | |
CN108255989A (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
CN113360548A (zh) | 基于数据资产分析的数据处理方法、装置、设备及介质 | |
CN111028074B (zh) | 逾期账单的更新和查询方法、***、服务器和存储介质 | |
US9380126B2 (en) | Data collection and distribution management | |
CN106358220B (zh) | 异常联系人信息的检测方法、装置及*** | |
EP2662783A1 (en) | Data archiving approach leveraging database layer functionality | |
CN111767284B (zh) | 数据处理方法、装置、存储介质和服务器 | |
CN108646987A (zh) | 一种文件卷的管理方法、装置、存储介质及终端 | |
CN112596949A (zh) | 一种高效率的ssd删除数据恢复方法及*** | |
CN108205559A (zh) | 一种数据管理方法及其设备 | |
CN111125104A (zh) | 数据库表的更新方法、装置、计算机设备及存储介质 | |
CN110045925A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN111984723A (zh) | 数据同步方法、装置及终端设备 | |
CN115617802A (zh) | 一种全量快照快速生成方法、装置、电子设备及存储介质 | |
CN115760404A (zh) | 一种股票减持方案生成方法、***、终端及存储介质 | |
CN114969070A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200508 |
|
WD01 | Invention patent application deemed withdrawn after publication |