一种建立发票数据库的方法与查询数据库内发票的方法技术

技术编号:18426268 阅读:28 留言:0更新日期:2018-07-12 01:58
本发明专利技术公开了一种建立发票数据库的方法与查询数据库内发票的方法,属于数据库分表技术领域,解决发票查询定位数据表用时缓慢、查询效率低下的问题。本发明专利技术包括建立发票数据库的方法:首先根据发票代码与发票号码设定阈值、生成一个字符串;其次确定阈值与字符串之间的映射规则;再次判断是否存在对应的数据表,如果不存在新建一个数据表;最后将发票插入到数据表中。本发明专利技术还包括相应的发票查询方法:首先输入需要查询的发票代码与发票号码,并生成字符串;然后根据阈值与映射规则查找到数据库内对应的数据表;最后通过SQL语句搜索到需要查询的发票。本发明专利技术具有操作简单、建库方便与查询效率高等特点,市场前景广阔。

Method of establishing invoice database and method of querying invoice in database

The invention discloses a method of establishing an invoice database and a method to inquire the invoice in the database. It belongs to the technical field of the database table, and solves the problem of slow and low query efficiency when the invoice is used to locate the data table. The invention includes the method of setting up an invoice database: first setting the threshold according to the invoice code and invoice number, generating a string; secondly determining the mapping rule between the threshold and the string; judge if there is a corresponding data table again, if there is no new data table; finally, the invoice is inserted into the data table. In the middle. The invention also includes the corresponding invoice query methods: first input the invoice code and invoice number that need to be querying, and generate string; then search the corresponding data table in the database according to the threshold and mapping rules; finally, search the invoices that need to be searched through the SQL statement. The invention has the advantages of simple operation, convenient library establishment and high query efficiency, and has broad market prospects.

【技术实现步骤摘要】
一种建立发票数据库的方法与查询数据库内发票的方法
本专利技术涉及一种发票查询方法,特别是一种建立发票数据库的方法与查询数据库内发票的方法,属于数据库分表

技术介绍
发票是指一切单位和个人在购销商品、提供或接受服务以及从事其他经营活动中,所开具和收取的业务凭证,是会计核算的原始依据,也是审计机关、税务机关执法检查的重要依据。不管是税务机关还是企业的税务系统,每时每刻都有大量的发票开具,形成海量税务数据。传统的发票查询系统速度慢、效率低,如何能够快速查询到已开发票信息,是首要解决的问题。为了提高查询速度,常用的方法有数据库优化、服务器扩展等。数据库优化又有数据库结构设计优化、数据库分表等。数据库分表常采用的有按时间分表、按数据量分表。数据库分表在查询时的难点在于如何定位数据所在表,且定位数据表耗时较长。
技术实现思路
本专利技术要解决的技术问题是提供一种建立发票数据库的方法与查询数据库内发票的方法,解决发票查询定位数据表用时缓慢、查询效率低下的问题。为了解决上述技术问题,本专利技术提供了一种建立发票数据库的方法与查询数据库内发票的方法;一种建立发票数据库的方法,包括以下步骤:S11:新建一个数据库;S12:根据税务发票的发票代码与发票号码设定阈值F:所述发票代码长度为N位、发票号码长度为M位,阈值F为小于N+M的正整数;S13:读入第一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串;S14:确定字符串与阈值F之间的映射规则;S15:根据映射规则选取所述字符串内的F个字符,作为数据表标识;判断是否在所述数据库内存在所述标识对应的数据表:若是,将当前发票插入到该数据表中;若否,新建一个该数据表标识对应的数据表,并将当前发票插入到该数据表中;S16:判断当前发票是否为最后一张发票:若是,结束发票数据库的建立;若否,读入下一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串,返回执行步骤S15。所述映射规则为:选取字符串内的前F个字符。所述N为12、M为8、F为6,且映射规则为:选取字符串内的第2-7个字符。所述N为12、M为8、F为6,且映射规则为:选取字符串内的前5个字符与第8个字符。所述N为12、M为8、F为10,且映射规则为:选取字符串内的前8个字符、第11个字符与第12个字符。所述N为10、M为8、F为5,且映射规则为:选取字符串内的前4个字符与第7个字符。所述N为10、M为8、F为8,且映射规则为:选取字符串内的前6个字符、第8个字符与第10个字符。一种查询如上述方法建立的数据库内发票的方法,包括以下步骤:输入需要查询的发票代码与发票号码,并将发票号码的第一位接在发票代码最后一位之后,生成一个字符串;根据所述阈值F与映射规则从字符串内选取F个字符,查找到发票数据库内与所述F个字符相同的数据表标识,进而查找到对应的数据表;通过数据库搜索语句在该数据表中搜索到需要查询的发票。所述数据库搜索语句为SQL语句。本专利技术通过发票代码与发票号码作为数据库分表依据,缩短了分表定位时间,提高发票查询速度;通过设置阈值,实现对每个数据表数量级的限制。通过设置不同的映射规则,实现对每个数据表内容的限制。本专利技术具有操作简单、建库方便、适用性强与查询效率高等特点,市场前景广阔。附图说明图1是本专利技术建立发票数据库的方法流程图;图2是本专利技术查询数据库内发票的方法流程图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。一张税务发票,发票代码和号码是其基本组成部分。普通发票代码为12位,增值税发票代码为10位(包括增值税普通发票与增值税专用发票);发票代码中的每一位都有特定的意义。发票号码为8位,每一位均为流水号,无特定的意义。发票代码与发票号码一起标识一张发票。普通发票的发票代码加发票号码总共20位,增值税发票的发票代码加发票号码总共18位;这20位或18位数字组成的字符串就是本专利技术数据库分表的依据。普通发票第1位为税务局代码(1-国税、2-地税),第2-5位为行政区划代码前4位,第6-7位为年份代码(取后两位数字,如2005年以05表示),第8位为发票行业代码(1-工业,2-商业,3-加工修理修配业,4-收购业,5-水电气业,6-其他),第9位为发票类别代码(1-税务机关统一式样的手写发票,2-税务机关统一式样的电脑发票,3-企业冠名手写发票,4-企业冠名电脑发票,5-税控收款机发票,6-除1至5以外的其他发票,7-发票换票证),第10位为金额版代码(0-电脑版,1-万元版,2-十万元版,3-百万元版,4-千万元版,5-千元版,6-百元版,7-十元版,8-税控收款机,9-无金额限制),第11-12位为批次号(以年度为单位,按批准印制顺序编号)。增值税普通发票第1-4位为行政区划代码,第5-6位为年份,第7位为印刷批次,第8位为发票种类(增值税普通发票为6),第9位为联次,第10位为金额版(增值税普通发票为0)。增值税专用发票第1-4位为行政区划代码,第5-6位为年份,第7位为印刷批次,第8位为文字版,第9位为联次,第10位为金额版。阈值左数连续X位时,可以起到限制单张数据表记录上限的作用,比如设置阈值为13,那么单张表最多存储999万张发票。除了设置左数连续X位,阈值的映射规则可以根据需要设定:例如设置映射规则为发票代码(字符串)的第2-7位,那么该表存储的就是某行政区划下的某一年所有的发票数据。实施例1:本实施例所需的设备为一台装有数据库设计软件的计算机,本实施例选定普通发票,其中发票代码长度为12位。本实施例的工作过程如下:首先,建立发票数据库,参见附图1。执行步骤100:新建一个数据库。执行步骤101:根据普通发票的发票代码与发票号码设定阈值F。其中发票代码长度为12位(N取12)、发票号码长度为8位(M取8),阈值F取8。执行步骤102:读入第一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串。执行步骤103:确定字符串与阈值F之间的映射规则:选取字符串内的前8个字符。执行步骤104:根据映射规则选取字符串的前8个字符,作为数据表标识;判断是否存在该数据表标识对应的数据表:若是,执行步骤105;若否,执行步骤106。执行步骤105:将该发票插入到该数据表中,执行步骤107。执行步骤106:新建一个对应的数据表,并将该发票插入到该数据表中,执行步骤107。执行步骤107:判断当前发票是否为最后一张发票,若是,结束发票数据库的建立;若否,执行步骤108。执行步骤108:读入下一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串,返回执行步骤104。参见附图2,查询税务发票的方法包括以下步骤:执行步骤201:输入需要查询的发票代码与发票号码。执行步骤202:将发票号码的第一位接在发票代码最后一位之后,生成一个字符串。执行步骤203:根据阈值与映射规则从字符串中选取前8个字符。执行步骤204:根据这8个字符查找到对应的数据表标识,进而查找到数据库内对应的数据表。执行步骤205:通过SQL语句在该数据表中搜索到需要查询的发票,结束本次查询。本实施例取字符串的前本文档来自技高网...

【技术保护点】
1.一种建立发票数据库的方法,其特征在于,包括以下步骤:S11:新建一个数据库;S12:根据税务发票的发票代码与发票号码设定阈值F:所述发票代码长度为N位、发票号码长度为M位,阈值F为小于N+M的正整数;S13:读入第一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串;S14:确定字符串与阈值F之间的映射规则;S15:根据映射规则选取所述字符串内的F个字符,作为数据表标识;判断是否在所述数据库内存在所述标识对应的数据表:若是,将当前发票插入到该数据表中;若否,新建一个该数据表标识对应的数据表,并将当前发票插入到该数据表中;S16:判断当前发票是否为最后一张发票:若是,结束发票数据库的建立;若否,读入下一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串,返回执行步骤S15。

【技术特征摘要】
1.一种建立发票数据库的方法,其特征在于,包括以下步骤:S11:新建一个数据库;S12:根据税务发票的发票代码与发票号码设定阈值F:所述发票代码长度为N位、发票号码长度为M位,阈值F为小于N+M的正整数;S13:读入第一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串;S14:确定字符串与阈值F之间的映射规则;S15:根据映射规则选取所述字符串内的F个字符,作为数据表标识;判断是否在所述数据库内存在所述标识对应的数据表:若是,将当前发票插入到该数据表中;若否,新建一个该数据表标识对应的数据表,并将当前发票插入到该数据表中;S16:判断当前发票是否为最后一张发票:若是,结束发票数据库的建立;若否,读入下一张发票,将发票号码的第一位接在发票代码最后一位之后,生成一个字符串,返回执行步骤S15。2.根据权利要求1所述的建立发票数据库的方法,其特征在于,所述映射规则为:选取字符串内的前F个字符。3.根据权利要求1所述的建立发票数据库的方法,其特征在于,所述N为12、M为8、F为6,且映射规则为:选取字符串内的第2-7个字符。4.根据权利要求1所述的建立发票数据...

【专利技术属性】
技术研发人员:王俊杰赵轶民袁俊玲胡金辉武志鹏屈国锋安瑞娥
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1