发明内容
本发明提供了数字资源导入、导出方法及装置,用以解决数字资源导出和导入开发效率低、系统故障率高等问题。
本发明提供一种数字资源导出方法,包括:
根据多个待导出的数据库表,获取配置信息;所述配置信息包括父数据库表元数据和子数据库表元数据,所述父数据库表元数据包括待导出的父数据库表对应的父资源名称、表名称、主键标识、XML文件名称以及多个表项;所述子数据库表元数据包括待导出的子数据库表对应的子资源名称、表名称、主键标识、文件名称以及多个表项,还包括值为所述父资源名称的关联标识;
根据所述父数据库表的表名称获取多个表项的内容,并存储在以所述父数据库表对应的文件名称命名的父XML文件中;并根据所述关联标识,根据所述子数据库表的表名称获取多个表项的内容,并存储在以所述子数据库表对应的XML文件名称命名的子XML文件中;并存储所述父数据库表和所述子数据库表分别对应的主键标识。
本发明提供另一种数字资源导入方法,包括:
根据多个待导入的XML文件,获取配置信息;所述配置信息包括父XML文件元数据和子XML文件元数据,所述父XML文件元数据包括待导出的父XML文件对应的父数据库表名称、新系统主键标识、原系统主键标识、父XML文件名称以及多个表项;所述子XML文件元数据数据包括待导出的子XML文件对应的子数据库表名称、新系统主键标识、原系统主键标识、子XML文件名称以及多个表项,还包括值为所述父XML文件名称的关联标识;
分别根据所述父XML文件名称获取多个表项的内容,并存储在以所述父数据库表名称命名的父数据库表中,以及根据所述子XML文件名称获取多个表项的内容,并存储在以所述子数据库表名称命名的子数据库表中;
根据预先存储的新系统主键标识与原系统主键标识之间的对应关系,以及所述关联标识,建立所述父数据库表和所述子数据库表之间的关联关系。
本发明提供一种数字资源导出装置,包括:
第一配置模块,用于根据多个待导出的数据库表,获取配置信息;所述配置信息包括父数据库表元数据和子数据库表元数据,所述父数据库表元数据包括待导出的父数据库表对应的父资源名称、表名称、主键标识、XML文件名称以及多个表项;所述子数据库表元数据包括待导出的子数据库表对应的子资源名称、表名称、主键标识、文件名称以及多个表项,还包括值为所述父资源名称的关联标识;
第一处理模块,用于根据所述父数据库表的表名称获取多个表项的内容,并存储在以所述父数据库表对应的文件名称命名的父XML文件中;并根据所述关联标识,根据所述子数据库表的表名称获取多个表项的内容,并存储在以所述子数据库表对应的XML文件名称命名的子XML文件中;并存储所述父数据库表和所述子数据库表分别对应的主键标识。
本发明提供另一种数字资源导入装置,包括:
第二配置模块,用于根据多个待导入的XML文件,获取配置信息;所述配置信息包括父XML文件元数据和子XML文件元数据,所述父XML文件元数据包括待导出的父XML文件对应的父数据库表名称、新系统主键标识、原系统主键标识、父XML文件名称以及多个表项;所述子XML文件元数据数据包括待导出的子XML文件对应的子数据库表名称、新系统主键标识、原系统主键标识、子XML文件名称以及多个表项,还包括值为所述父XML文件名称的关联标识;
第二处理模块,用于分别根据所述父XML文件名称获取多个表项的内容,并存储在以所述父数据库表名称命名的父数据库表中,以及根据所述子XML文件名称获取多个表项的内容,并存储在以所述子数据库表名称命名的子数据库表中;还用于根据预先存储的新系统主键标识与原系统主键标识之间的对应关系,以及所述关联标识,建立所述父数据库表和所述子数据库表之间的关联关系。
本发明提供的数字资源导入、导出方法及装置,通过基于关系数据模型实现了数字资源在不同系统间的导出和导入,不仅提高了数字资源导出和导入功能的开发效率,而且还达到了提高数据准确性和降低系统故障率的目的。
具体实施方式
针对现有技术中存在的数字资源的多样性和系统的多样性等特点,本发明各实施例提供一种基于关系数据模型的数字资源导出和导入的方法及装置,达到提高开发效率,降低系统故障率的技术效果。
图1为本发明数字资源导出的架构图,如图1所示,在软件系统中保存的数字资源可以概括为两类数据:数据库表中的数据和实体文件。这两类数据在导出的时候都转化为文件系统中的文件。其中数据库表的数据转化为XML文件,每个数据库表对应一个XML文件,系统中的实体文件如图片文件、word文件等直接导出为原始的文件形式。
图2为本发明数字资源导出方法实施例流程图,如图2所示,该方法包括:
步骤200、根据多个待导出的数据库表,获取配置信息;
本发明实施例中所述的配置信息包括两种元数据,分别为父数据库表元数据和子数据库表元数据、其中,所述父数据库表元数据包括待导出的父数据库表对应的父资源名称、表名称、主键标识、XML文件名称以及多个表项。所述子数据库表元数据包括待导出的子数据库表对应的子资源名称、表名称、主键标识、文件名称以及多个表项,还包括值为所述父资源名称的关联标识;
以下是本发明实施例提供的配置信息实例:
在上面的配置内容中图书资源涉及到两类数据,一个是图书的元数据(即父数据库表元数据),一个是图书目录的元数据(即子数据库表元数据)。
从上述的配置信息中可知,父数据库表元数据中,resource name=″图书″为父资源名称,″table=″PAM_BOOK″为表名称,pk=″ID″为主键标识,file-name=″图书数据″为XML文件名称,<fields>所包括的为多个表项。子数据库表元数据中,resource name=″图书目录″为子资源名称,″table=″PAM_BOOK_CATALOG″为表名称,pk=″ID″为主键标识,file-name=″图书目录数据″为XML文件名称,<fields>所包括的为多个表项,″ENTRY_LINKID″为关联标识,其取值来自名称为″图书″的父资源的主键标识。
可知,图书数据保存在PAM_BOOK表中,图书目录保存在PAM_BOOK_CATALOG表中,而图书目录通过ENTRY_LINKID字段关联图书数据,同时图书目录之间的父子关系通过PARENT_ID字段进行关联。在导出的时候数据表的数据导出的XML文件名由file-name属性确定。
步骤201、根据所述父数据库表的表名称获取多个表项的内容,并存储在以所述父数据库表对应的文件名称命名的父XML文件中;并根据所述关联标识,根据所述子数据库表的表名称获取多个表项的内容,并存储在以所述子数据库表对应的XML文件名称命名的子XML文件中;并存储所述父数据库表和所述子数据库表分别对应的主键标识。
资源导出的时候系统读取上面的配置内容,从数据库中检索相应的表并将获取的数据保存到XML文件中,之后查找关联的数据并导出到相应的XML文件中。具体地,系统根据父数据库表的表名称获取多个表项的内容,并存储在以父数据库表对应的文件名称命名的父XML文件即“图书数据.XML”中。
并根据关联标识即“图书”,根据子数据库表的表名称获取多个表项的内容,并存储在以子数据库表对应的XML文件名称命名的子XML文件即“图书目录数据.XML”中。并存储父数据库表和子数据库表分别对应的主键标识pk=″ID″。数据库表的数据每个表导出为一个单独的XML文件,对于表数据的主键标识id以及表数据之间的关联标识id都直接导出为原始的值。
本发明实施还包括根据父数据库表和子数据库表分别对应的主键标识之间的关联关系,为父XML文件和子XML文件分别生成具有相同关联关系的新系统主键标识。
在上述实施例中,所述父数据库表在所述父XML文件中以对应的表项名进行存储,所述子数据库表中的各表项在所述子XML文件中以对应的表项名进行存储,也就是说表数据的列在XML文件中以系统设置的元素名(可以与列名相同)来存储。
在上述实施例中,在导出一个表数据的时候系统根据配置的关联表自动查找关联的数据表中的关联数据并导出为另一个XML文件,通过此方式可以实现指定一类资源中的某个数据,可以一次性批量导出与此数据相关联的所有资源的相关数据,例如指定一本图书的数据,则会导出与此图书关联的章节、条目、图片、音视频等资源的数据。
图3为本发明数字资源导入的架构图,如图3所示,数字资源的导入基于前面导出部分导出的XML文件和实体文件。在数字资源导入的时候可以选择一个XML文件导入一个数据库表,也可以选择多个XML文件导入一个数据库表。每个实体文件在导入到新系统中仍然保存为一个实体文件。
图4为本发明数字资源导入方法实施例流程图,如图4所示,该方法包括:
步骤400、根据多个待导入的XML文件,获取配置信息;
本发明实施例中所述的配置信息包括父XML文件元数据和子XML文件元数据,所述父XML文件元数据包括待导出的父XML文件对应的父数据库表名称、新系统主键标识、原系统主键标识、父XML文件名称以及多个表项。所述子XML文件元数据数据包括待导出的子XML文件对应的子数据库表名称、新系统主键标识、原系统主键标识、子XML文件名称以及多个表项,还包括值为所述父XML文件名称的关联标识。
以下是本发明实施例提供的配置信息实例:
在上面的配置内容中图书资源涉及到两类数据,一个是图书的元数据(即父XML文件元数据),一个是图书目录的元数据(即子XML文件元数据)。
从上述的配置信息中可知,父XML文件元数据中,resource dest=″PAM_BOOK″为父数据库表名称,pk=″ID″为新系统主键标识,src-pk=″ID″为原系统主键标识,src=″图书数据″为父XML文件名称,<fields>所包括的为多个表项。子XML文件元数据数据中,resourcedest=″PAM_BOOK_CAT″为子数据库表名称、pk=″ID″为新系统主键标识、src-pk=″ID″为原系统主键标识、src=″图书目录数据″为子XML文件名称,<fields>所包括的为多个表项。″ENTRY_LINKID″为关联标识,其取值来自名称为″图书数据″的父XML文件中的主键标识。
步骤401、分别根据所述父XML文件名称获取多个表项的内容,并存储在以所述父数据库表名称命名的父数据库表中,以及根据所述子XML文件名称获取多个表项的内容,并存储在以所述子数据库表名称命名的子数据库表中;
根据配置信息,将各XML文件的数据导入对应的数据库表中,例如将名称为″图书数据″的XML文件导入到系统中后数据库表的名称对应为″PAM_BOOK″。
在上述实施例中,所述父数据库表在所述父XML文件中以对应的表项名进行存储,所述子数据库表中的各表项在所述子XML文件中以对应的表项名进行存储。
步骤402、根据预先存储的新系统主键标识与原系统主键标识之间的对应关系,以及所述关联标识,建立所述父数据库表和所述子数据库表之间的关联关系。
针对前面导出的图书资源数据,从上面的配置内容中可知图书数据导入到了PAM_BOOK表中,图书目录数据导入到了PAM_BOOK_CAT表中,其中的src属性说明了XML文件的名称,dest属性说明了数据存储的数据库表名,ref属性说明了当前数据关联的数据的名称。
资源导入的时候系统读取上面的配置内容,通过ref属性确定数据之间的依赖关系,从示例中可知图书目录依赖于图书,因此被依赖的图书数据先导入系统并生成新的id,图书目录导入的时候设置字段ENTRY_LINKID为图书的新id,从而在新系统中建立了图书和图书目录之间的关联关系。
数据库表的数据在导入新系统中后原有的主键标识id保留,同时生成新系统中的主键标识id,此后此数据在进行更新或删除的时候可以依据保留的原始id进行查找和处理。系统依据原始id之间确定的数据关联关系在新系统中重建这些关联关系,并使用新的id进行数据之间的关联。系统在导入资源的时候确定数据之间的依赖关系,被其它数据依赖的数据先于其它数据导入系统并生成新系统中的id,其它数据导入的时候使用此数据新的id进行关联。
本发明提供的各方法实施例,可以提高数字资源导出和导入功能的开发效率,并具有以下显著效果:
提高了软件的复用程度:一般的数字资源导出和导入软件都工作在资源层面即直接处理各类资源,这样导致的结果是针对某种资源编写的软件无法应用在别的资源处理上,如针对图片资源的功能无法应用在视频资源上。而本方法基于关系数据层面,所有的资源都可以工作在这个层面上,所以针对图片资源的在关系数据层面的导出和导入处理过程同样适用于视频资源,这样软件的复用程度就大大提高了。
提高了系统开发效率:由本发明提供的方法工作在关系数据层面,所以针对各类资源的处理可以采取一致的方式,因此针对一种资源的功能可以轻松的应用于另外一种资源,这个过程只需要做稍微的配置和定制即可,因此在处理新的资源的时候可以极大的提高功能的开发效率。
降低了系统运行的故障率:由于系统的复用程度高,系统的核心处理过程和模块在各类资源的处理过程中都频繁的被调用,因此系统的核心模块经过了完善的运行测试,非常的稳定,系统的故障率因此大大降低。
图5为本发明数字资源导出装置实施例结构图,如图5所示,该导出装置包括第一配置模块51和第一处理模块52,其中,第一配置模块51用于根据多个待导出的数据库表,获取配置信息;所述配置信息包括父数据库表元数据和子数据库表元数据,所述父数据库表元数据包括待导出的父数据库表对应的父资源名称、表名称、主键标识、XML文件名称以及多个表项;所述子数据库表元数据包括待导出的子数据库表对应的子资源名称、表名称、主键标识、文件名称以及多个表项,还包括值为所述父资源名称的关联标识;第一处理模块52用于根据所述父数据库表的表名称获取多个表项的内容,并存储在以所述父数据库表对应的文件名称命名的父XML文件中;并根据所述关联标识,根据所述子数据库表的表名称获取多个表项的内容,并存储在以所述子数据库表对应的XML文件名称命名的子XML文件中;并存储所述父数据库表和所述子数据库表分别对应的主键标识。
第一处理模块52还用于根据所述父数据库表和所述子数据库表分别对应的主键标识之间的关联关系,为所述父XML文件和所述子XML文件分别生成具有相同关联关系的新系统主键标识。
本实施例提供的数字资源导出装置具体可以执行上述数字资源导出方法的处理流程,其具体原理和处理流程此处不再赘述。
图6为本发明数字资源导入装置实施例结构图,如图6所示,该导出装置包括第二配置模块61和第二处理模块62,其中,第二配置模块61用于根据多个待导入的XML文件,获取配置信息;所述配置信息包括父XML文件元数据和子XML文件元数据,所述父XML文件元数据包括待导出的父XML文件对应的父数据库表名称、新系统主键标识、原系统主键标识、父XML文件名称以及多个表项;所述子XML文件元数据数据包括待导出的子XML文件对应的子数据库表名称、新系统主键标识、原系统主键标识、子XML文件名称以及多个表项,还包括值为所述父XML文件名称的关联标识;第二处理模块62用于分别根据所述父XML文件名称获取多个表项的内容,并存储在以所述父数据库表名称命名的父数据库表中,以及根据所述子XML文件名称获取多个表项的内容,并存储在以所述子数据库表名称命名的子数据库表中;还用于根据预先存储的新系统主键标识与原系统主键标识之间的对应关系,以及所述关联标识,建立所述父数据库表和所述子数据库表之间的关联关系。
本实施例提供的数字资源导入装置具体可以执行上述数字资源导入方法的处理流程,其具体原理和处理流程此处不再赘述。
本发明各实施例提供装置,可以涉及数字资源存储、处理和应用领域,通过基于关系数据模型实现了数字资源在不同系统间的导出和导入,不仅提高了数字资源导出和导入功能的开发效率,而且还达到了提高数据准确性和降低系统故障率的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。