CN106843888A - 用于解决多语言开发系统中字段冲突的方法及装置 - Google Patents

用于解决多语言开发系统中字段冲突的方法及装置 Download PDF

Info

Publication number
CN106843888A
CN106843888A CN201710058870.8A CN201710058870A CN106843888A CN 106843888 A CN106843888 A CN 106843888A CN 201710058870 A CN201710058870 A CN 201710058870A CN 106843888 A CN106843888 A CN 106843888A
Authority
CN
China
Prior art keywords
field
data
type
data type
default value
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.)
Granted
Application number
CN201710058870.8A
Other languages
English (en)
Other versions
CN106843888B (zh
Inventor
秦元
吴利波
傅凡
蔡金开
王小恒
孙道林
竹峰
竹一峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN201710058870.8A priority Critical patent/CN106843888B/zh
Publication of CN106843888A publication Critical patent/CN106843888A/zh
Application granted granted Critical
Publication of CN106843888B publication Critical patent/CN106843888B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开是关于一种用于解决多语言开发系统中字段冲突的方法及装置。该用于解决多语言开发系统中字段冲突的方法包括:将所述多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。本公开可以解决多语言开发系统中的字段冲突。

Description

用于解决多语言开发系统中字段冲突的方法及装置
技术领域
本公开涉及计算机应用技术领域,具体而言,涉及一种用于解决多语言开发系统中字段冲突的方法及装置。
背景技术
多语言开发系统中,由于不同模块之间使用的技术实现方式不同,例如不同模块之间使用的数据库语言类型和/或业务逻辑开发时的开发语言类型不同,业务数据在不同模块之间调用时,容易出现字段冲突问题。
现有技术中,用于解决该多语言开发系统中的字段冲突问题的实现方案主要包括事后处理与事前处理两种方案。
其中,在第一种事后处理方式中,又存在两种处理方式:1)将发生冲突的一字段按照发生冲突的另一字段进行调整,从而能够保持该字段冲突中的两个字段一致。例如,假设字段A与字段B冲突,将字段A改成与字段B一致。2)将冲突的两个字段更改为其他字段,用另外的字段代替。例如,假设字段A与字段B冲突,将字段A与字段B都改成字段C。
其中上述事后处理方式存在以下问题:在出现冲突的情况下才进行修改,涉及修改面广、修改难度大以及修改成本高的问题。
其中,在第二种方案事前处理方式中,将该多语言开发系统中需要使用到的字段定义为常量,在系统开发前先将字段保持一致。
其中上述事前处理方式,将字段定义为常量可以虽然解决字段冲突的问题,但是在常量字段本身需要修改的情况下,例如需要修改字段对应的数据类型或者默认值,同样存在涉及修改面广、修改难度大、以及修改成本高的问题。
因此,现有技术中的技术方案还存在有待改进之处。需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种用于解决多语言开发系统中字段冲突的方法及装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本公开的其他特性和优点将通过下面的详细描述变得清晰,或者部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种用于解决多语言开发系统中字段冲突的方法,包括:
将所述多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
在本公开的一种示例性实施例中,所述多种数据资源包括预先定义的标准字段、业务数据类型、标准数据类型以及默认值;
其中,所述标准字段通过属性项字段类型与所述业务数据类型关联,所述业务数据类型通过属性项类型名称与所述标准数据类型关联,所述业务数据类型通过属性项默认值管理所述默认值,所述标准字段通过所述业务数据类型与所述标准数据类型及所述默认值交互。
在本公开的一种示例性实施例中,所述多种数据资源还包括数据字典,其中所述标准字段通过属性项字典条目关联所述数据字典。
在本公开的一种示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,包括:
从所述标准字段中选择相应的标准字段;
当缓存中不存在所述相应的标准字段时,通过所述标准字段模型加载所述相应的标准字段对应的业务数据类型以及关联的数据字典,以及加载所述业务数据类型对应的标准数据类型以及默认值。
在本公开的一种示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,包括:
当当前字段为所述标准字段时,判断所述标准字段对应的业务数据类型是否存在;
当所述标准字段对应的业务数据类型不存在时,增加相应的业务数据类型;
当所述标准字段对应的业务数据类型存在时,在数据库开发时获取对应数据库的标准数据类型和/或在业务逻辑开发时获取对应开发语言的标准数据类型;若对应数据库和/或对应开发语言的标准数据类型不存在,则增加相应的标准数据类型;
通过所述业务数据类型获取所述标准字段对应的默认值,在数据库开发时获取对应数据库的默认值和/或在业务逻辑开发时获取对应开发语言的默认值;若对应数据库和/或对应开发语言的默认值不存在,则增加相应的默认值。
在本公开的一种示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,还包括:
当所述当前字段为非标准字段时,禁止所述当前字段在所述多语言开发系统中的使用。
在本公开的一种示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,还包括:
获取所述标准字段对应的数据字典;
若所述标准字段不存在数据字典,判断所述标准字段是否需要维护数据字典;
当所述标准字段需要维护数据字典,添加相应的数据字典。
在本公开的一种示例性实施例中,还包括:通过更改所述业务数据类型同步完成对应的标准字段的标准数据类型和默认值的修改。
根据本公开的一个方面,提供一种用于解决多语言开发系统中字段冲突的装置,包括:
封装模块,用于将所述多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
模型建立模块,用于将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
加载模块,用于在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
在本公开的一种示例性实施例中,所述多种数据资源包括预先定义的标准字段、业务数据类型、标准数据类型以及默认值;
其中,所述标准字段通过属性项字段类型与所述业务数据类型关联,所述业务数据类型通过属性项类型名称与所述标准数据类型关联,所述业务数据类型通过属性项默认值管理所述默认值,所述标准字段通过所述业务数据类型与所述标准数据类型及所述默认值交互。
在本公开的一种示例性实施例中,所述多种数据资源还包括数据字典,其中所述标准字段通过属性项字典条目关联所述数据字典。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中所述处理器配置为经由执行所述可执行指令来执行以下操作:
将多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
本公开一种示例实施方式所提供的用于解决多语言开发系统中字段冲突的方法及装置中,一方面,采用资源分层方法,将数据类型、默认值进行抽象封装,通过一种标准数据类型即可表示不同数据库类型、不同开发语言类型,一种默认值即可表示不同数据库类型默认值、不同开发语言默认值。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开示例性实施例中一种用于解决多语言开发系统中字段冲突的方法的流程示意图。
图2为本公开示例性实施例中一种标准数据体系结构示意图。
图3为本公开示例性实施例中一种标准字段模型示意图。
图4为本公开示例性实施例中一种业务数据的加载流程示意图。
图5为本公开示例性实施例中一种标准字段的示意图。
图6为本公开示例性实施例中一种业务数据类型的示意图。
图7为本公开示例性实施例中一种标准数据类型的示意图。
图8为本公开示例性实施例中一种默认值的示意图。
图9为本公开示例性实施例中一种数据字典的示意图。
图10为本公开示例性实施例中一种用于解决多语言开发系统中字段冲突的装置的方框示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1为本公开示例性实施例中一种用于解决多语言开发系统中字段冲突的方法的流程示意图。
如图1所示,在步骤S110中,将所述多语言开发系统中涉及到的字段可以封装成多种数据资源,且各数据资源之间可以通过属性字段和其他数据资源之间产生关联关系。
在示例性实施例中,所述多种数据资源可以包括预先定义的标准字段、业务数据类型、标准数据类型以及默认值。
其中所述标准字段,对多语言开发系统中的数据字段、接口参数进行统一定义,描述了一个字段或参数对应的名称(字段名)、中文名(字段名称)、业务数据类型(字段类型)、取值范围(数据字典)、展现属性等信息。
其中所述业务数据类型是一种自定义类型,通过自定义类型可以扩展数据库类型、开发语言类型,保证数据类型的可用性以及通用性。业务数据类型通过指定标准类型属性来关联标准数据类型资源,使得一个业务数据类型可以唯一指定一种真实的数据类型(即系统开发时系统采用的真实的数据库语言类型和/或开发语言类型);通过指定默认值属性关联默认值资源,使得一个业务数据类型可以唯一指定一种真实的数据类型对应的默认值。
其中所述标准数据类型是一种抽象数据类型,它是对不同数据库语言、不同开发语言对应同一种数据类型的一种抽象,即用一种抽象类型来描述不同数据库语言、不同开发语言对应的数据类型。
其中所述默认值为所述标准数据类型统一定义不同数据库语言、不同开发语言的默认值。
在示例性实施例中,所述标准字段可以通过属性项字段类型与所述业务数据类型关联,所述业务数据类型可以通过属性项类型名称与所述标准数据类型关联,所述业务数据类型可以通过属性项默认值管理所述默认值,所述标准字段可以通过所述业务数据类型与所述标准数据类型及所述默认值交互。
在示例性实施例中,所述多种数据资源还可以包括数据字典。其中所述标准字段可以通过属性项字典条目关联所述数据字典。
其中所述数据字典,统一维护业务开发过程中涉及到的枚举数据信息。所述数据字典本身不是必须的,有的标准字段可以存在,有的标准字段可以不存在,这个是根据具体业务来进行定义的。但是在进行系统开发时,定义数据字典使开发人员更加明确后台数据库系统的设计,提高系统开发效率。
在步骤S120中,将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型。
本发明实施例中,可以将系统开发中涉及到的字段信息封装成5种数据资源:标准字段、业务数据类型、标准数据类型、默认值、数据字典。每一种资源只维护当前资源对应的信息,资源之间通过属性字段和其他资源产生关联关系,这5种资源统称为标准数据体系,标准数据体系结构如图2所示。
本发明实施例中,可以通过资源的内敛关系,将资源在内存中组织成一个树状的数据模型数组,并通过懒加载机制与内存缓存技术将资源数据应用到系统开发中。本发明中提供的标准数据体系结构中的多种数据资源不是孤岛形式存在的,而是有相互关联关系的(通过相应的属性进行关联),采用懒加载技术是指在系统启动后不会直接加载这些数据资源,而是在需要使用(例如,存在系统解析或者调用时)的时候,采取自动解析。内存缓存技术是指对解析过的数据资源内容将其在系统内存中进行缓存。这样,通过使用懒加载可以有效的控制系统内存开销,而使用内存缓存又可以加速资源处理与获取效率,提高程序运行效率。
其中懒加载(lazy)是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为每次访问数据库都是比较耗时的即只有真正使用该对象的数据时才会创建。主要是通过代理机制来实现延迟加载:从数据库获取某一个对象数据时、获取某一个对象的集合属性值时,或获取某一个对象所关联的另一个对象时,由于没有使用该对象的数据,并不是数据库加载真正的数据,而只是为该对象创建一个代理对象来代表这个对象,这个对象上的所有属性都是默认值;当在真正需要使用该对象的数据时才创建这个真实对象,真正从数据库中加载它的数据,从而减少所耗的时间。
而通过内存缓存技术将相应数据存储起来以避免数据的重复创建、处理和传输,可有效提高性能。比如将不改变的数据缓存起来,这样能明显提高web程序的反应速度。同一个应用中,对同一数据、逻辑功能和用户界面的多次请求时经常发生的。当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪费,也同时造成系统的不稳定。而缓存数据也能降低对数据库的访问次数,降低数据库的负担和提高数据库的服务能力。有时,提供数据信息的服务可能会意外停止,如果使用了缓存技术,可以在一定时间内仍正常提供对最终用户的支持,提高了系统的可用性。
在步骤S130中,在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
这里的所述数据库开发是指在进行数据库表结构定义以及其他数据库系统资源开发的过程。所述业务逻辑开发过程是指对整个系统进行业务组装、业务流程处理的过程。本发明实施例的多语言开发系统可以使用多种数据库语言进行数据库设计、或者使用多种开发语言进行业务逻辑开发、或者同时使用多种数据库语言和多种开发语言进行系统开发。
在示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,包括:从所述标准字段中选择相应的标准字段;当缓存中不存在所述相应的标准字段时,通过所述标准字段模型加载所述相应的标准字段对应的业务数据类型以及关联的数据字典,以及加载所述业务数据类型对应的标准数据类型以及默认值。
在进行多语言系统开发时,借助预定义好的标准数据体系,可以使系统开发只需要关注业务本身处理,而无需关注数据库底层、开发语言底层技术细节。例如在数据库开发新建只有两个字段(帐户名称,帐户类型)的帐户表时,开发人员只需要从标准字段中选择帐户名称以及帐户类型即可,至于该字段需要使用哪种类型、使用哪个默认值以及是否使用数据字典等,则从标准字段模型中加载(如果还是没有,给出标准字段不存在提示,这里的标准字段不存在是做容错处理,防止标准字段修改(主要是废弃掉)后,由于版本的滞后导致标准字段不存在的情况),同时会加载该字段对应的业务数据类型以及关联的数据字典,在加载业务类型的同时,会加载业务类型对应的标准数据类型以及默认值,这样就将该字段对应的所有标准数据都加载起来。
一条标准数据类型会关联多种真实的开发语言类型(例如C、C++、JAVA等)和/或多种数据库语言类型(例如Oracle、Mysql等),标准数据类型最终指向的是某种开发语言类型和/或某种数据库语言类型。开发人员在进行系统开发的时候,此系统需要使用的数据库语言类型以及开发语言类型基本上是已经确定下来的,这个时候可以通过项目属性配置文件进行统一配置,通过配置项目属性配置文件来自动确定当前开发人员使用的真实数据类型。
如果是使用Oracle开发,则自动将要使用的类型从标准数据类型中获取对应的Oracle类型,同时从默认值中获取Oracle对应的默认值;其他数据库类型或者语言开发类型(C、JAVA……)使用相同处理方式加载。
在示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,包括:当当前字段为所述标准字段时,判断所述标准字段对应的业务数据类型是否存在;当所述标准字段对应的业务数据类型不存在时,增加相应的业务数据类型;当所述标准字段对应的业务数据类型存在时,在数据库开发时获取对应数据库的标准数据类型和/或在业务逻辑开发时获取对应开发语言的标准数据类型;若对应数据库和/或对应开发语言的标准数据类型不存在,则增加相应的标准数据类型;通过所述业务数据类型获取所述标准字段对应的默认值,在数据库开发时获取对应数据库的默认值和/或在业务逻辑开发时获取对应开发语言的默认值;若对应数据库和/或对应开发语言的默认值不存在,则增加相应的默认值。
需要说明的是,上述增加业务数据类型、增加标准数据类型、增加默认值均可以由系统自动填充一份,也可以由用户手动添加;或者先由系统自动填充,然后用户手动调整。
在示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,还包括:当所述当前字段为非标准字段时,禁止所述当前字段在所述多语言开发系统中的使用。
在示例性实施例中,所述通过所述标准字段模型自动完成相应的业务数据的加载,还包括:获取所述标准字段对应的数据字典;若所述标准字段不存在数据字典,判断所述标准字段是否需要维护数据字典;当所述标准字段需要维护数据字典,添加相应的数据字典。
其中判断所述标准字段是否需要维护所述数据字典,可以根据系统需求规则说明书进行判断,可以由开发人员根据系统需求规则说明书进行检查判断;也可以将系统需求规则说明书预先录入到系统中,由系统自动判断。
类似的,上述数据字典的添加,可以由用户手动添加,也可以根据预先录入的系统需求规则说明书的描述,系统自动添加。
在示例性实施例中,还包括:通过更改所述业务数据类型同步完成对应的标准字段的标准数据类型和默认值的修改。
本实施方式公开的用于解决多语言开发系统中字段冲突的方法,一方面,借助预先定义好的标准字段,可以使得数据库开发以及业务逻辑开发过程使用同一份字段,从而保证数据字段和接口参数的一致性,能够提高业务系统参数的可维护性。另一方面,这种保证同一个业务模型数据在不同语言实现模块中的逻辑一致性的方法实现起来简便易用。
图2为本公开示例性实施例中一种标准数据体系结构示意图。
如图2所示,包括数据字典,例如数据字典[01]、数据字典[02]、数据字典[03]、数据字典[04]、…数据字典[N];标准字段,例如标准字段[01]、标准字段[02]、…标准字段[N],其中各标准字段中可以分别包括字段名称、业务数据类型和数据字典属性;业务类型,例如业务类型[01]、业务类型[02]、…业务类型[M],其中各业务类型中又可以分别包括类型名称、标准数据类型、默认值属性;标准类型,例如标准类型[01]、…标准类型[N],其中各标准类型中又可以分别包括类型名称属性,其中各类型名称中可以包括不同的数据库类型(例如Oracle、Mysql、Db2、Sybase等等)、不同的开发语言(例如C、Java、PHP、Python等等);默认值,例如默认值[01]、…默认值[M],其中各默认值中可以包括不同的数据库类型默认值(例如Oracle、Mysql、Db2、Sybase等等)、不同的开发语言默认值(例如C、Java、PHP、Python等等)。
图2所示的实施例中,以标准字段[01]为例进行说明,其数据字典属性项关联数据字典[02],其业务数据类型属性项关联业务类型[01],且业务类型[01]通过标准数据类型属性项关联标准类型[01],业务类型[01]通过默认值属性项关联默认值[01]。类似的,标准字段[02]其数据字典属性项关联数据字典[04],其业务数据类型属性项关联业务类型[02],且业务类型[02]通过标准数据类型属性项关联标准类型[N],业务类型[02]通过默认值属性项关联默认值[M];标准字段[N]其数据字典属性项不关联数据字典中的任意一项,其业务数据类型属性项关联业务类型[02],且业务类型[02]通过标准数据类型属性项关联标准类型[N],业务类型[02]通过默认值属性项关联默认值[M]。
图2所示的标准数据体系设计了5种基本数据资源。一方面,通过封装好的数据库底层类型、使得使用标准数据体系开发的数据库系统可以自适应不同数据库类型开发。另一方面,通过封装好的开发语言底层类型,使得使用标准数据体系开发的业务系统可以自适应不同开发语言开发。从而能够降低业务系统在多语言中的开发门槛。
再一方面,通过封装好的标准数据体系,使得业务开发人员在业务开发过程中只需要关注业务字段本身,而不用再关注底层数据库类型的选取、底层开发语言的类型选取以及对应默认值的设置,从而能够提高业务开发效率与开发质量。
标准数据体系在内存中模型结构如图3所示。其中标准字段通过属性项字段类型关联业务数据类型,通过属性项字典条目关联数据字典;业务数据类型通过类型名称关联标准数据类型,通过属性默认值管理默认值。
本发明实施例中,为了解决多语言开发系统中字段冲突问题,将该多语言开发系统中涉及到的字段信息进行统一定义,并将原有的字段定义的二层结构解析为三层结构。即标准字段与真实的数据类型(真实数据库语言类型和/或开发语言类型)以及默认值之间封装一层自定义的业务数据类型,通过业务数据类型与标准数据类型和默认值交互。
这样,一方面可以提升系统的重构效率,对标准字段的数据类型或者默认值更改只需要更换对应的业务数据类型即可同步完成对应的标准数据类型和默认值的修改。另一方面通过暴露自定义的业务数据类型而非真实的业务数据的标准数据类型,可以有效的对竞争对手屏蔽技术细节,从而提高系统的安全性。
业务数据的加载流程如图4所示。
在步骤S201中,当该多语言开发系统接收到用户输入的字段时,判断该字段是否为标准字段;当该字段为标准字段是,可以进入步骤S202继续判断该字段是否存在业务类型,和/或也可以同时进入步骤S210判断该字段是否存在数据字典;当该字段为非标准字段时,则可以进入步骤S214,即禁止该字段在该多语言开发系统中的使用。
即首先判断用户使用的字段是否为已定义好的标准字段,非标准字段禁止使用。
在步骤S202中,当该字段为标准字段时,判断该字段是否存在业务类型;当不存在业务类型时,可以进入步骤S203中给该字段增加业务类型;当存在业务类型时,可以进入步骤S204判断是否存在标准类型,和/或同时还可以进入步骤S207判断是否存在默认值。
获取标准字段对应的业务类型,如果不存在,则需要增加相应业务类型。
在步骤S203中,当该字段为标准字段且不存在业务类型时,给该字段增加业务类型;给该字段增加业务类型后继续跳回到步骤S202。
在步骤S204中,当该字段为标准字段且存在业务类型时,可以继续判断该字段是否存在标准类型;当不存在标准类型时,可以进入步骤S205给该字段增加标准类型;当存在标准类型时,可以进入步骤S206加载真实类型。
在步骤S205中,当该字段为标准字段且存在业务类型但不存在标准类型时,可以给该字段增加标准类型;给该字段增加标准类型后继续跳回到步骤S204。
通过业务类型获取该字段对应的标准类型,在数据库开发时获取对应数据库的真实类型,在业务逻辑开发时获取对应开发语言的真实类型;如果不存在,则需要增加相应的标准数据类型。
在步骤S206中,当该字段为标准字段且存在业务类型同时还存在标准类型时,可以加载真实类型。
在步骤S207中,当该字段为标准字段且存在业务类型时,判断该字段是否存在默认值;当不存在默认值时,可以进入步骤S208给该字段增加默认值;当存在默认值时,可以进入步骤S209加载默认值。
在步骤S208中,给该字段增加默认值;给该字段增加默认值后继续跳回到步骤S207。
通过业务类型获取该字段对应的默认值,在数据库开发时获取对应数据库的默认值,在业务逻辑开发时获取对应开发语言的默认值;如果不存在,则需要增加相应的默认值。
在步骤S209中,加载默认值。
在步骤S210中,当该字段为标准字段时,还可以判断该字段是否存在数据字典;当不存在数据字典时,可以进入步骤S211继续判断该字段是否需要维护数据字典;当存在数据字典时,可以进入步骤S213加载数据字典。
获取标准字段对应的数据字典,如果不存在判断此标准字段是否需要维护数据字典;如果需要则添加相应的数据字典,不是每一个标准字段都需要对应数据字典。
在步骤S211中,判断该字段需要维护数据字典;当该字段需要维护数据字典时,可以进入步骤S212给该字段增加数据字典;当该字段不需要维护数据字典时,可以进入步骤S214结束本次操作。
在步骤S212中,给该字段增加数据字典;给该字段增加数据字典后继续跳回到步骤S201。
在步骤S213中,加载数据字典。
在步骤S214中,当该字段为标准字段且加载完该字段的真实类型(步骤S206)、默认值(步骤S209)、和/或数据字典(步骤S213,即该字当该字段存在数据字典或者需要维护数据字典时)后,结束本次操作;或者当该字段为非标准字段时,直接结束本次操作。
图5为本公开示例性实施例中一种标准字段的示意图。图6为本公开示例性实施例中一种业务数据类型的示意图。图7为本公开示例性实施例中一种标准数据类型的示意图。图8为本公开示例性实施例中一种默认值的示意图。图9为本公开示例性实施例中一种数据字典的示意图。
由于采用了资源分层方法,将数据类型、默认值进行抽象封装,使得一种类型即可表示不同数据库类型、不同开发语言类型;一种默认值即可标准不同数据库类型默认值、不同开发语言默认值;并通过业务数据类型集成标准类型与默认值,使得引用了该类型的字段更易于字段重构;借助定义好的标准字段,使得数据库开发以及业务开发过程使用同一份字段,可以有效防止字段在系统中的二义性,保证业务数据在不同模块间的一致性。
相应于上述的系统实施例,本发明还提供一种用于解决多语言开发系统中字段冲突的装置。
如图10所示,该装置100包括封装模块110、模型建立模块120以及加载模块130。
其中封装模块110用于将所述多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
其中模型建立模块120用于将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
其中加载模块130用于在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
在示例性实施例中,所述多种数据资源包括预先定义的标准字段、业务数据类型、标准数据类型以及默认值;其中,所述标准字段通过属性项字段类型与所述业务数据类型关联,所述业务数据类型通过属性项类型名称与所述标准数据类型关联,所述业务数据类型通过属性项默认值管理所述默认值,所述标准字段通过所述业务数据类型与所述标准数据类型及所述默认值交互。
在示例性实施例中,所述多种数据资源还包括数据字典,其中所述标准字段通过属性项字典条目关联所述数据字典。
对于上述装置实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。本领域技术人员可以理解:实现上述方法实施例的全部或者部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM(Read-Only Memory,只读存储记忆体)、RAM(Random Access Memory,随机存储记忆体)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步,本发明实施方式还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令。
其中所述处理器配置为经由执行所述可执行指令来执行以下操作:将多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
所述电子设备例如可以为服务器、计算机、手机、平板电脑以及PDA等。本示例性实施例中对此不做特殊限定。
本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (12)

1.一种用于解决多语言开发系统中字段冲突的方法,其特征在于,包括:
将所述多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
2.根据权利要求1所述的方法,其特征在于,所述多种数据资源包括预先定义的标准字段、业务数据类型、标准数据类型以及默认值;
其中,所述标准字段通过属性项字段类型与所述业务数据类型关联,所述业务数据类型通过属性项类型名称与所述标准数据类型关联,所述业务数据类型通过属性项默认值管理所述默认值,所述标准字段通过所述业务数据类型与所述标准数据类型及所述默认值交互。
3.根据权利要求2所述的方法,其特征在于,所述多种数据资源还包括数据字典,其中所述标准字段通过属性项字典条目关联所述数据字典。
4.根据权利要求3所述的方法,其特征在于,所述通过所述标准字段模型自动完成相应的业务数据的加载,包括:
从所述标准字段中选择相应的标准字段;
当缓存中不存在所述相应的标准字段时,通过所述标准字段模型加载所述相应的标准字段对应的业务数据类型以及关联的数据字典,以及加载所述业务数据类型对应的标准数据类型以及默认值。
5.根据权利要求3所述的方法,其特征在于,所述通过所述标准字段模型自动完成相应的业务数据的加载,包括:
当当前字段为所述标准字段时,判断所述标准字段对应的业务数据类型是否存在;
当所述标准字段对应的业务数据类型不存在时,增加相应的业务数据类型;
当所述标准字段对应的业务数据类型存在时,在数据库开发时获取对应数据库的标准数据类型和/或在业务逻辑开发时获取对应开发语言的标准数据类型;若对应数据库和/或对应开发语言的标准数据类型不存在,则增加相应的标准数据类型;
通过所述业务数据类型获取所述标准字段对应的默认值,在数据库开发时获取对应数据库的默认值和/或在业务逻辑开发时获取对应开发语言的默认值;若对应数据库和/或对应开发语言的默认值不存在,则增加相应的默认值。
6.根据权利要求5所述的方法,其特征在于,所述通过所述标准字段模型自动完成相应的业务数据的加载,还包括:
当所述当前字段为非标准字段时,禁止所述当前字段在所述多语言开发系统中的使用。
7.根据权利要求5所述的方法,其特征在于,所述通过所述标准字段模型自动完成相应的业务数据的加载,还包括:
获取所述标准字段对应的数据字典;
若所述标准字段不存在数据字典,判断所述标准字段是否需要维护数据字典;
当所述标准字段需要维护数据字典,添加相应的数据字典。
8.根据权利要求2所述的方法,其特征在于,还包括:通过更改所述业务数据类型同步完成对应的标准字段的标准数据类型和默认值的修改。
9.一种用于解决多语言开发系统中字段冲突的装置,其特征在于,包括:
封装模块,用于将所述多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
模型建立模块,用于将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
加载模块,用于在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
10.根据权利要求9所述的装置,其特征在于,所述多种数据资源包括预先定义的标准字段、业务数据类型、标准数据类型以及默认值;
其中,所述标准字段通过属性项字段类型与所述业务数据类型关联,所述业务数据类型通过属性项类型名称与所述标准数据类型关联,所述业务数据类型通过属性项默认值管理所述默认值,所述标准字段通过所述业务数据类型与所述标准数据类型及所述默认值交互。
11.根据权利要求10所述的装置,其特征在于,所述多种数据资源还包括数据字典,其中所述标准字段通过属性项字典条目关联所述数据字典。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中所述处理器配置为经由执行所述可执行指令来执行以下操作:
将多语言开发系统中涉及到的字段封装成多种数据资源,且各数据资源之间通过属性字段和其他数据资源之间产生关联关系;
将所述多种数据资源构成标准数据体系结构,并将所述标准数据体系结构组织成标准字段模型;
在所述多语言开发系统中的数据库开发和/或业务逻辑开发过程中,通过所述标准字段模型自动完成相应的业务数据的加载。
CN201710058870.8A 2017-01-23 2017-01-23 用于解决多语言开发系统中字段冲突的方法及装置 Active CN106843888B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710058870.8A CN106843888B (zh) 2017-01-23 2017-01-23 用于解决多语言开发系统中字段冲突的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710058870.8A CN106843888B (zh) 2017-01-23 2017-01-23 用于解决多语言开发系统中字段冲突的方法及装置

Publications (2)

Publication Number Publication Date
CN106843888A true CN106843888A (zh) 2017-06-13
CN106843888B CN106843888B (zh) 2020-03-17

Family

ID=59121744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710058870.8A Active CN106843888B (zh) 2017-01-23 2017-01-23 用于解决多语言开发系统中字段冲突的方法及装置

Country Status (1)

Country Link
CN (1) CN106843888B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562421A (zh) * 2017-09-28 2018-01-09 北京神州泰岳软件股份有限公司 一种自然语言处理方法及处理平台
CN108920133A (zh) * 2018-06-14 2018-11-30 北京三快在线科技有限公司 跨语言编程方法、装置、电子设备及存储介质
CN112347075A (zh) * 2020-11-02 2021-02-09 福建天泉教育科技有限公司 一种实现数据库建模标准化的方法及终端
CN113778597A (zh) * 2021-08-30 2021-12-10 惠州市德赛西威汽车电子股份有限公司 一种ui属性与程序逻辑关联的数据创建方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174208A (zh) * 2007-11-28 2008-05-07 山东浪潮齐鲁软件产业股份有限公司 一种软件生产线平台的实现方法
CN101246420A (zh) * 2007-12-29 2008-08-20 中国建设银行股份有限公司 多语言系统实现统一开发的方法及系统
CN105025254A (zh) * 2014-06-13 2015-11-04 深圳市景阳科技股份有限公司 一种多平台监控终端系统开发方法
CN105511865A (zh) * 2015-11-30 2016-04-20 大连文森特软件科技有限公司 一种能够使用多语言或多引擎进行代码开发的方法及系统
CN106293679A (zh) * 2015-06-11 2017-01-04 阿里巴巴集团控股有限公司 一种元素名称冲突处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174208A (zh) * 2007-11-28 2008-05-07 山东浪潮齐鲁软件产业股份有限公司 一种软件生产线平台的实现方法
CN101246420A (zh) * 2007-12-29 2008-08-20 中国建设银行股份有限公司 多语言系统实现统一开发的方法及系统
CN105025254A (zh) * 2014-06-13 2015-11-04 深圳市景阳科技股份有限公司 一种多平台监控终端系统开发方法
CN106293679A (zh) * 2015-06-11 2017-01-04 阿里巴巴集团控股有限公司 一种元素名称冲突处理方法及装置
CN105511865A (zh) * 2015-11-30 2016-04-20 大连文森特软件科技有限公司 一种能够使用多语言或多引擎进行代码开发的方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562421A (zh) * 2017-09-28 2018-01-09 北京神州泰岳软件股份有限公司 一种自然语言处理方法及处理平台
CN108920133A (zh) * 2018-06-14 2018-11-30 北京三快在线科技有限公司 跨语言编程方法、装置、电子设备及存储介质
CN112347075A (zh) * 2020-11-02 2021-02-09 福建天泉教育科技有限公司 一种实现数据库建模标准化的方法及终端
CN112347075B (zh) * 2020-11-02 2022-10-21 福建天泉教育科技有限公司 一种实现数据库建模标准化的方法及终端
CN113778597A (zh) * 2021-08-30 2021-12-10 惠州市德赛西威汽车电子股份有限公司 一种ui属性与程序逻辑关联的数据创建方法及系统
CN113778597B (zh) * 2021-08-30 2023-12-29 惠州市德赛西威汽车电子股份有限公司 一种ui属性与程序逻辑关联的数据创建方法及系统

Also Published As

Publication number Publication date
CN106843888B (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
US11023834B2 (en) Collaborative design systems, apparatuses, and methods
CN102750270B (zh) 扩充的对话理解代理
JP2514152B2 (ja) 情報処理システムを構築する方法
KR101238573B1 (ko) 워크 아이템 추적 시스템용 워크 아이템 규칙
US6182277B1 (en) Methods and apparatus for declarative programming techniques in an object oriented environment
US20190377561A1 (en) Transforming non-apex code to apex code
US8448132B2 (en) Systems and methods for modifying code generation templates
CN106843888A (zh) 用于解决多语言开发系统中字段冲突的方法及装置
US8701087B2 (en) System and method of annotating class models
US20080005747A1 (en) System and method for object state management
CA2311169A1 (en) Infrastructure for developing application-independent language modules for language-independent applications
US20070083551A1 (en) Extensible mechanism for object composition
Sunagawa et al. An environment for distributed ontology development based on dependency management
WO2022062888A1 (zh) 一种文档编辑方法、装置、计算机设备和存储介质
JP2011521352A (ja) 動的宣言型アプリケーション記述
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
JP2001056814A (ja) 言語非依存アプリケーションのためのアプリケーション非依存言語モジュール
US20080229294A1 (en) Method and System for Managing Heuristic Properties
Chen et al. Decomposition of UML activity diagrams
EP3907602A1 (en) Trustworthy application integration
US20040249823A1 (en) System and method for object navigation grammar completion
CN105393216B (zh) 运行时内存调节
CN110960858A (zh) 一种游戏资源的处理方法、装置、设备及存储介质
Duarte Proof-theoretic foundations for the design of actor systems
Günther et al. Metaprogramming in Ruby: a pattern catalog

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
GR01 Patent grant
GR01 Patent grant