一种业务数据多语言存储和查询方法及装置与流程

文档序号:12034796阅读:436来源:国知局
一种业务数据多语言存储和查询方法及装置与流程

本发明涉及业务数据技术领域,具体而言,涉及一种业务数据多语言存储和查询方法及装置。



背景技术:

大型企业多需要支撑全球业务,组织人员遍及世界各地,支撑其运营的企业应用软件必须考虑多语言能力的实现,应用软件多语言从数据性质来分,分为交互界面的多语言和业务数据的多语言。

业务数据主要存储在关系型数据库中,如oracle、mysql等。现有数据多语言实现方式为对每个有多语言需求的数据表设计独立的多语言元数据表,数据通过外键关联,比如产品信息表的产品名称如果需要多语言,其多语言元数据表一般设计为{主键id,产品编码,多语言标识,产品名称},“产品编码”为外键。查询时需要通过sql的连接查询方式,以“多语言标识”为限定条件查询出客户端的多语言数据。这种方式设计成本高,增加sql开发的复杂度,且随着数据规模扩大,性能受到限制。



技术实现要素:

本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。

为此,本发明的一个目的在于提出了一种业务数据多语言存储和查询方法。

本发明的另一个目的在于提出了一种业务数据多语言存储和查询装置。

有鉴于此,根据本发明的一个目的,提出了一种业务数据多语言存储和查询方法,包括:将业务数据表的表字段扩展为多语言字段;将多语言字段存储至数据库;获取结构化查询语句;分析结构化查询语句,提取结构化查询语句的目标表和字段;查询目标表与业务数据表以及字段与多语言字段是否匹配,得出查询结果;当查询结果为目标表与业务数据表以及字段与多语言字段匹配时,将字段替换为多语言字段,生成替换后的结构化查询语句。

本发明提供的业务数据多语言存储和查询方法,将业务数据表的表字段扩展为多语言字段并进行存储,例如为产品信息表扩展中文和英文的产品名称字段{产品名称_zh,产品名称_en},解析查询的sql语句,分析其查询的目标表和字段,对照业务数据表,查询需要进行多语言处理的字段,将此字段替换为多语言字段,生成替换后的结构化查询语句,简化了表设计的复杂度,避免sql语句的连接查询,使得开发人员无需编写复杂的sql语句,提升使用性能。具体地,还提供多语言数据的维护功能。

根据本发明的上述业务数据多语言存储和查询方法,还可以具有以下技术特征:

在上述技术方案中,优选地,将业务数据表的表字段扩展为多语言字段的步骤,包括:标识业务数据表中需要进行多语言处理的表字段;将表字段扩展为多语言字段。

在该技术方案中,将业务数据表的表字段扩展为多语言字段的步骤具体包括:标识需要进行多语言处理的业务数据表的具体表字段,例如“产品信息表-产品名称”,将表字段扩展为多语言字段,无需为业务数据表设计独立的多语言元数据表,降低了设计复杂度。

在上述任一技术方案中,优选地,还包括:将替换后的结构化查询语句发送至数据库执行。

在该技术方案中,将替换后的结构化查询语句发送至数据库执行,采用代理技术改写sql语句,开发人员编写查询功能时,无需做额外处理。

在上述任一技术方案中,优选地,还包括:返回查询结果。

在该技术方案中,查询结果返回至应用程序调用处,无需在程序中对返回的查询结果中的目标字段做二次查询和替换。

在上述任一技术方案中,优选地,业务数据表的结构包括以下一种或其组合:表名、字段名。

在该技术方案中,业务数据表的结构包括以下一种或其组合:表名、字段名,业务数据表可以是关系数据库的表,例如多语言标识表,表结构应至少包含{表名,字段名}。

根据本发明的另一个目的,提出了一种业务数据多语言存储和查询装置,包括:标识处理单元,用于将业务数据表的表字段扩展为多语言字段;存储单元,用于将多语言字段存储至数据库;获取单元,用于获取结构化查询语句;分析单元,用于分析结构化查询语句,提取结构化查询语句的目标表和字段;查询单元,用于查询目标表与业务数据表以及字段与多语言字段是否匹配,得出查询结果;替换单元,用于当查询结果为目标表与业务数据表以及字段与多语言字段匹配时,将字段替换为多语言字段,生成替换后的结构化查询语句。

本发明提供的业务数据多语言存储和查询装置,标识处理单元将业务数据表的表字段扩展为多语言字段并由存储单元进行存储,例如为产品信息表扩展中文和英文的产品名称字段{产品名称_zh,产品名称_en},获取单元获取sql语句,分析单元解析查询的sql语句,分析其查询的目标表和字段,查询单元对照业务数据表,查询需要进行多语言处理的字段,替换单元将此字段替换为多语言字段,生成替换后的结构化查询语句,简化了表设计的复杂度,避免sql语句的连接查询,使得开发人员无需编写复杂的sql语句,提升使用性能。具体地,还提供多语言数据的维护功能。

根据本发明的上述业务数据多语言存储和查询装置,还可以具有以下技术特征:

在上述技术方案中,优选地,标识处理单元,具体用于:标识业务数据表中需要进行多语言处理的表字段;以及将表字段扩展为多语言字段。

在该技术方案中,标识处理单元标识需要进行多语言处理的业务数据表的具体表字段,例如“产品信息表-产品名称”,将表字段扩展为多语言字段,无需为业务数据表设计独立的多语言元数据表,降低了设计复杂度。

在上述任一技术方案中,优选地,还包括:执行单元,用于将替换后的结构化查询语句发送至数据库执行。

在该技术方案中,执行单元将替换后的结构化查询语句发送至数据库执行,采用代理技术改写sql语句,开发人员编写查询功能时,无需做额外处理。

在上述任一技术方案中,优选地,还包括:返回单元,用于返回查询结果。

在该技术方案中,返回单元将查询结果返回至应用程序调用处,无需在程序中对返回的查询结果中的目标字段做二次查询和替换。

在上述任一技术方案中,优选地,业务数据表的结构包括以下一种或其组合:表名、字段名。

在该技术方案中,业务数据表的结构包括以下一种或其组合:表名、字段名,业务数据表可以是关系数据库的表,例如多语言标识表,表结构应至少包含{表名,字段名}。

本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1a示出了本发明的一个实施例的业务数据多语言存储和查询方法的流程示意图;

图1b示出了本发明的另一个实施例的业务数据多语言存储和查询方法的流程示意图;

图2示出了本发明的一个实施例的业务数据多语言存储和查询装置的示意框图;

图3示出了本发明的一个具体实施例的业务数据多语言存储和查询方法的流程示意图;

图4示出了本发明的一个具体实施例的业务数据多语言存储和查询装置的示意框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。

本发明第一方面的实施例,提出一种业务数据多语言存储和查询方法,图1a示出了本发明的一个实施例的业务数据多语言存储和查询方法的流程示意图。其中,该方法包括:

步骤102,将业务数据表的表字段扩展为多语言字段;

步骤104,将多语言字段存储至数据库;

步骤106,获取结构化查询语句;

步骤108,分析结构化查询语句,提取结构化查询语句的目标表和字段;

步骤110,查询目标表与业务数据表以及字段与多语言字段是否匹配,得出查询结果;

步骤112,当查询结果为目标表与业务数据表以及字段与多语言字段匹配时,将字段替换为多语言字段,生成替换后的结构化查询语句。

本发明提供的业务数据多语言存储和查询方法,将业务数据表的表字段扩展为多语言字段并进行存储,例如为产品信息表扩展中文和英文的产品名称字段{产品名称_zh,产品名称_en},解析查询的sql语句,分析其查询的目标表和字段,对照业务数据表,查询需要进行多语言处理的字段,将此字段替换为多语言字段,生成替换后的结构化查询语句,简化了表设计的复杂度,避免sql语句的连接查询,使得开发人员无需编写复杂的sql语句,提升使用性能。具体地,还提供多语言数据的维护功能。

图1b示出了本发明的另一个实施例的业务数据多语言存储和查询方法的流程示意图。其中,该方法包括:

步骤122,标识业务数据表中需要进行多语言处理的表字段;

步骤124,将表字段扩展为多语言字段;

步骤104,将多语言字段存储至数据库;

步骤106,获取结构化查询语句;

步骤108,分析结构化查询语句,提取结构化查询语句的目标表和字段;

步骤110,查询目标表与业务数据表以及字段与多语言字段是否匹配,得出查询结果;

步骤112,当查询结果为目标表与业务数据表以及字段与多语言字段匹配时,将字段替换为多语言字段,生成替换后的结构化查询语句。

在该实施例中,将业务数据表的表字段扩展为多语言字段的步骤具体包括:标识需要进行多语言处理的业务数据表的具体表字段,例如“产品信息表-产品名称”,将表字段扩展为多语言字段,无需为业务数据表设计独立的多语言元数据表,降低了设计复杂度。

在本发明的一个实施例中,如图1b所示,优选地,该方法包括:

步骤122,标识业务数据表中需要进行多语言处理的表字段;

步骤124,将表字段扩展为多语言字段;

步骤104,将多语言字段存储至数据库;

步骤106,获取结构化查询语句;

步骤108,分析结构化查询语句,提取结构化查询语句的目标表和字段;

步骤110,查询目标表与业务数据表以及字段与多语言字段是否匹配,得出查询结果;

步骤112,当查询结果为目标表与业务数据表以及字段与多语言字段匹配时,将字段替换为多语言字段,生成替换后的结构化查询语句;

同时还包括:

步骤114,将替换后的结构化查询语句发送至数据库执行。

在该实施例中,将替换后的结构化查询语句发送至数据库执行,采用代理技术改写sql语句,开发人员编写查询功能时,无需做额外处理。

在本发明的一个实施例中,优选地,还包括:返回查询结果。

在该实施例中,查询结果返回至应用程序调用处,无需在程序中对返回的查询结果中的目标字段做二次查询和替换。

在本发明的一个实施例中,优选地,业务数据表的结构包括以下一种或其组合:表名、字段名。

在该实施例中,业务数据表的结构包括以下一种或其组合:表名、字段名,业务数据表可以是关系数据库的表,例如多语言标识表,表结构应至少包含{表名,字段名}。

本发明第二方面的实施例,提出一种业务数据多语言存储和查询装置200,图2示出了本发明的一个实施例的业务数据多语言存储和查询装置200的示意框图。其中,该装置包括:

标识处理单元202,用于将业务数据表的表字段扩展为多语言字段;

存储单元204,用于将多语言字段存储至数据库;

获取单元206,用于获取结构化查询语句;

分析单元208,用于分析结构化查询语句,提取结构化查询语句的目标表和字段;

查询单元210,用于查询目标表与业务数据表以及字段与多语言字段是否匹配,得出查询结果;

替换单元212,用于当查询结果为目标表与业务数据表以及字段与多语言字段匹配时,将字段替换为多语言字段,生成替换后的结构化查询语句。

本发明提供的业务数据多语言存储和查询装置200,标识处理单元202将业务数据表的表字段扩展为多语言字段并由存储单元204进行存储,例如为产品信息表扩展中文和英文的产品名称字段{产品名称_zh,产品名称_en},获取单元206获取sql语句,分析单元208解析查询的sql语句,分析其查询的目标表和字段,查询单元210对照业务数据表,查询需要进行多语言处理的字段,替换单元212将此字段替换为多语言字段,生成替换后的结构化查询语句,简化了表设计的复杂度,避免sql语句的连接查询,使得开发人员无需编写复杂的sql语句,提升使用性能。具体地,还提供多语言数据的维护功能。

在本发明的一个实施例中,优选地,标识处理单元202,具体用于:标识业务数据表中需要进行多语言处理的表字段;以及将表字段扩展为多语言字段。

在该实施例中,标识处理单元标识需要进行多语言处理的业务数据表的具体表字段,例如“产品信息表-产品名称”,将表字段扩展为多语言字段,无需为业务数据表设计独立的多语言元数据表,降低了设计复杂度。

在本发明的一个实施例中,如图2所示,优选地,还包括:

执行单元214,用于将替换后的结构化查询语句发送至数据库执行。

在该实施例中,执行单元214将替换后的结构化查询语句发送至数据库执行,采用代理技术改写sql语句,开发人员编写查询功能时,无需做额外处理。

在本发明的一个实施例中,如图2所示,优选地,还包括:

返回单元216,用于返回查询结果。

在该实施例中,返回单元216将查询结果返回至应用程序调用处,无需在程序中对返回的查询结果中的目标字段做二次查询和替换。

在本发明的一个实施例中,优选地,业务数据表的结构包括以下一种或其组合:表名、字段名。

在该实施例中,业务数据表的结构包括以下一种或其组合:表名、字段名,业务数据表可以是关系数据库的表,例如多语言标识表,表结构应至少包含{表名,字段名}。

在一个具体实施例中,业务数据多语言存储和查询方法包括:

(1)配置数据表多语言标识信息,即定义需要进行多语言处理的表的具体字段,例如“产品信息表-产品名称”,该信息可存储在数据库;

(2)为业务数据表扩展多语言信息存储字段,例如为产品信息表扩展中文和英文的产品名称字段{产品名称_zh,产品名称_en},应用系统提供多语言数据的维护功能;

(3)业务系统加载(1)中定义的标识列表;

(4)业务系统解析查询的sql语句,分析其查询的目标表和字段,对照多语言标识表,识别需要进行多语言处理的字段;

(5)将sql查询的字段转换为正确的多语言字段,例如将select产品名称from产品信息表转换为select产品名称_zhas产品名称from产品信息表;

(6)将查询结果返回,查询结果与预期一致,且开发者无需为多语言对sql做特别处理。

在另一个具体实施例中,业务数据多语言存储和查询装置包括:

多语言标识配置单元,用于维护数据表的多语言字段信息;

sql语法词法解析单元,能够识别查询sql,并分析出查询字段和表;

sql转化单元,基于sql语法词法解析单元的分析结果,在多语言标识配置单元维护的配置信息中匹配多语言标识,如果匹配上,则替换sql语句中的对应的字段。

其中,对于sql语法词法解析单元的实现,在java平台下可以使用开源的druid连接池提供的sql解析器。

在再一个具体实施例中,如图3所示,业务数据多语言存储和查询方法包括:

步骤302,标识需要进行多语言处理的表字段,保存在可查询的存储设备中,可以是关系数据库的表(多语言标识表),表结构应至少包含{表名,字段名};

步骤304,在应用程序中提供一个sql拦截器,在java平台可以采用截面技术,或者使用开源的druid数据库连接池,该拦截器能够拦截应用向数据库发送的sql语句,并做语法词法分析,能够识别查询sql语句,并分析出查询字段和表;

步骤306,将步骤304中分析出来的字段和表作为查询条件,在步骤302中维护的多语言标识表中查询是否有值,如果有则将字段替换为多语言字段;

步骤308,将步骤306中转换后的sql语句发送给数据库,并将查询结果返回至应用程序调用处。

在又一个具体实施例中,如图4所示,业务数据多语言存储和查询装置400包括:

数据表多语言标识单元402,提供多语言标识的存储、查询等维护功能;

sql语法词法分析单元404,内嵌在业务系统中,拦截业务程序发送的sql语句,分析词法语法,把分析结果发送给sql语句替换执行单元;

sql语句替换执行单元406,将sql语法词法分析单元404中分析出来的字段和表作为查询条件,在数据表多语言标识单元402中维护的多语言标识表中查询是否有值,如果有则将字段替换为多语言字段。

本发明一方面,多语言信息与主体信息存储在一张数据表,按需要支持的多语言种类,以字段的形式保存,无需为业务数据表设计独立的多语言元数据表,降低了设计复杂度;另一方面,无需使用sql语句连接查询,提升了查询性能;再一方面,开发人员撰写sql语句时,无需关注多语言信息的查询,降低了系统开发复杂度。

在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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