CN110377565A - 一种多媒体数据库的同步方法及车机 - Google Patents
一种多媒体数据库的同步方法及车机 Download PDFInfo
- Publication number
- CN110377565A CN110377565A CN201910672944.6A CN201910672944A CN110377565A CN 110377565 A CN110377565 A CN 110377565A CN 201910672944 A CN201910672944 A CN 201910672944A CN 110377565 A CN110377565 A CN 110377565A
- Authority
- CN
- China
- Prior art keywords
- node
- file
- data
- tree
- tables
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多媒体数据库的同步方法及车机,方法包括:当移动存储器非首次与车机连接时,根据车机的数据库中存储的移动存储器对应的节点的名称和数据表生成第一树状结构;移动存储器的节点的名称和数据表在移动存储器首次与车机连接时获得;节点的名称为移动存储器首次连接车机时的所有文件和文件夹的名称;所有节点之间的关系以节点的ID形成数据表;文件的内容为多媒体数据;根据本次与车机连接的移动存储器中的所有文件夹和文件生成第二树状结构;将第一树状结构和第二树状结构进行比对,获得比对结果;根据比对结果更新节点的名称和数据表。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种多媒体数据库的同步方法及车机。
背景技术
随着计算机硬件技术的迅猛发展,目前多媒体系统中包括的多媒体数据日渐丰富,其中既有视觉的媒体数据,例如文字和图像;又有声音的媒体数据,例如语音和音乐,还有视频的媒体数据。
多媒体数据能够以多媒体文件的形式存储在移动存储器上,当移动存储器与车辆的车机连接时,车机能够通过解析移动存储器的文件系统,将移动存储器的文件系统同步到车机,车机解析移动存储器的文件系统,是指打开每个文件,获得每个文件的内容,以使用户可以通过车机上运行的应用程序获取移动存储器的文件信息。
但车机对移动存储器的文件系统的解析比较耗费时间,当移动存储器存储的文件数量庞大时,用户每次将移动存储器接入车机都需要等待较长的时间以使车机完成对移动存储器的文件系统的解析,降低了用户的体验。
发明内容
为了解决现有技术存在的上述技术问题,本申请实施例提供了一种多媒体数据库的同步方法及车机,能够使车机更快的获取移动存储器的文件信息,提升了用户的体验。
本申请提供一种多媒体数据库的同步方法,所述方法包括:
当移动存储器非首次与车机连接时,根据所述车机的数据库中存储的所述移动存储器对应的节点的名称和数据表生成第一树状结构;所述移动存储器的所述节点的名称和所述数据表在所述移动存储器首次与所述车机连接时获得;所述节点的名称为所述移动存储器首次连接所述车机时的所有文件和文件夹的名称;所有所述节点之间的关系以所述节点的ID形成所述数据表;所述文件的内容为多媒体数据;
根据本次与所述车机连接的所述移动存储器中的所有文件夹和文件生成第二树状结构;
将所述第一树状结构和第二树状结构进行比对,获得比对结果;
根据所述比对结果更新所述节点的名称和所述数据表。
优选地,所述移动存储器的所述节点的名称和所述数据表在所述移动存储器首次与所述车机连接时获得,具体包括:
获得所述移动存储器首次连接所述车机时所述移动存储器中所有文件夹和文件之间的关系;每个所述文件夹和文件分别对应一个节点,每个所述节点包括ID和名称;
根据所述所有文件夹和文件之间的关系获得所有所述节点之间的关系,
将所有所述节点之间的关系以所述节点的ID形成数据表;
将每个所述节点的名称和所述数据表存储在所述车机的数据库中。
优选地,在根据所述车机的数据库中存储的所述移动存储器对应的节点的名称和数据表生成第一树状结构,之前还包括:
根据本次插入的移动存储器的序列号查找对应的数据表和对应的节点的名称。
优选地,所述根据所述车机的数据库中存储的所述移动存储器对应的节点的名称和数据表生成第一树状结构,具体包括:
根据所述节点的名称和所述数据表获得所述第一树状结构的根节点作为所述第一树状结构的第一部分;所述根节点对应的后代节点的ID、祖先节点的ID和父亲节点的ID均相同;
查找以所述根节点为父亲节点的子节点,根据所述子节点与所述根节点之间的关系获得第一树状结构的第二部分;
查找以所述子节点为父亲节点的下一级节点,根据所述下一级节点与所述子节点之间的关系获得第一树状结构的第三部分,以此类推,直至获得所述第一树状结构。
优选地,所述根据所述比对结果更新所述节点的名称和所述数据表,具体包括:
当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被删除的文件夹或文件时,则通过所述数据表查找所述被删除的文件夹或文件对应的节点;
将所述被删除的文件夹或文件对应的节点以及对应的所有后代节点均从所述数据表中删除,并在所述数据库中删除所述被删除的文件夹或文件对应的节点的名称。
优选地,根据所述比对结果更新所述节点的名称和所述数据表,具体包括:
当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被增加的文件夹或文件时,则在所述第二树状结构中查找所述被增加的文件夹或文件对应的节点与其他节点的关系,根据所述被增加的文件夹或文件对应的节点与其他节点的关系在所述数据表中增加相应节点,并在所述数据库中增加所述被增加的文件夹或文件对应的节点的名称。
本申请还提供一种车机,用于更新多媒体数据库,包括:USB接口、硬盘和控制器;
所述控制器,用于当移动存储器非首次连接所述USB接口时,根据所述硬盘的数据库中存储的所述移动存储器对应的所述节点的名称和所述数据表生成第一树状结构;所述移动存储器的所述节点的名称和所述数据表在所述移动存储器首次与所述车机连接时获得;所述节点的名称为所述移动存储器首次连接所述车机时的所有文件和文件夹的名称;所有所述节点之间的关系以所述节点的ID形成所述数据表;所述文件的内容为多媒体数据;将本次与所述USB口连接的所述移动存储器中的所有文件夹和文件生成第二树状结构;将所述第一树状结构和第二树状结构进行比对,获得比对结果;根据所述比对结果更新所述节点的名称和所述数据表。
优选地,所述控制器,还用于获得所述移动存储器首次连接所述USB接口时所述移动存储器中的所有文件夹和文件之间的关系,每个所述文件夹和文件分别对应一个节点,每个所述节点包括ID和名称;根据所述所有文件夹和文件之间的关系获得所有所述节点之间的关系;将所有所述节点之间的关系以所述节点的ID形成数据表;将每个所述节点的名称和所述数据表存储在所述硬盘的数据库中。
优选地,所述控制器,还用于根据本次插入移动存储器的序列号查找对应的数据表和对应的节点的名称。
优选地,所述控制器,具体用于当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被删除的文件夹或文件时,则通过所述数据表查找所述被删除的文件夹或文件对应的节点;将所述被删除的文件夹或文件对应的节点以及对应的所有后代节点均从所述数据表中删除,并在所述数据库中增加所述被增加的文件夹或文件对应的节点的名称。
优选地,所述控制器,具体用于当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被增加的文件夹或文件时,则在所述第二树状结构中查找所述被增加的文件夹或文件对应的节点与其他节点的关系,根据所述被增加的文件夹或文件对应的节点与其他节点的关系在所述数据表中增加相应节点,并在所述数据库中增加所述被增加的文件夹或文件对应的节点的名称。
与现有技术相比,本申请至少具有以下优点:
当移动存储器非首次与车机连接时,车机根据数据库中存储的该移动存储器对应的节点的名称和数据表生成第一树状结构,移动存储器的节点的名称和数据表在移动存储器首次与车机连接时获得。其中,节点的名称为移动存储器首次连接车机时的所有文件和文件夹的名称,每个文件夹或文件对应的节点ID具有唯一性。所述文件的内容为多媒体数据;在移动存储器首次与车机连接时,根据所有文件夹和文件之间的关系获得所有节点之间的关系并将所有节点之间的关系以节点的ID形成该数据表。根据本次与车机连接的移动存储器中的所有文件夹和文件生成第二树状结构,利用树状结构能够很好的描述文件系统中的分支关系和层次特征,将第一树状结构和第二树状结构进行比对,获取发生变换的文件或文件夹,例如对比发现第二树状结构存在增加的文件夹或文件、或者第二树状结构存在删除的文件夹或文件。车机根据比对结果,在数据表更新这部分发生变化的文件夹和文件的信息。
利用本申请提供的方法,在移动存储器首次与车机连接时,将该移动存储器对应的节点的名称和数据表存储在车机的数据库中,当移动存储器非首次与车机连接时,获取本次移动存储器文件系统的变更部分并更新多媒体数据库。对于任意节点,数据表包括了与该节点有关系的所有其它节点以及具体的层级关系,不仅仅只包括父子关系,因此能够快速确定文件系统的变更部分,快速实现对移动存储器的文件系统的同步,使车机能够更快的获取移动存储器的文件信息,进而减少了用户的等待时间,提升了用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例一提供的一种多媒体数据库的建立方法的流程图;
图2为本申请实施一提供的树状结构的示意图;
图3为本申请实施例二提供的一种多媒体数据库的同步方法的流程图;
图4为本申请实施例二提供的第一树状结构生成过程的示意图;
图5为本申请实施例三提供的一种车机的示意图。
具体实施方式
车机是安装在车辆里面的车载信息娱乐产品的简称,车机在功能上能够实现人与车,车与外界(车与车)的信息通讯,车机大多安装在中控台里面,有的车机主机和屏幕是在一起,有的车机主机和屏幕分离的。
车机可以连接移动存储器等外设,车机上常用的移动存储器可以为U盘、移动硬盘以及存储卡等,下面以车机连接U盘为例进行说明,当车机连接其它类型的移动存储器时原理类似,本申请实施例在此不再赘述。
车机能够解析U盘的文件系统,进而获取U盘中文件夹和文件之间的关系,并将U盘的文件系统同步到车机,用户可以通过车机上运行的APP应用程序,例如音乐播放程序、视频播放程序等获取U盘的文件信息。车机解析U盘的文件系统,是指打开每个文件,获得每个文件的内容,例如文件夹A包括100首流行歌曲,文件夹A中的前10个文件均是M歌手的歌曲,第50个文件是N歌手的歌曲。
但车机对U盘的文件系统的解析比较耗费时间,当U盘存储的文件数量庞大时,例如,U盘存储上千首歌曲时,解析时间可能需要十几分钟。用户现在想聆听N歌手的歌曲,车机需要遍历整个U盘的文件系统来解析每个文件,获得N歌手的歌曲。因此,用户需要等待较长时间才能获取U盘的文件信息。并且目前车机不会将U盘的文件系统的解析结果存储在数据库中,因此用户每次接入U盘时,即使U盘的文件系统完全没有变化,车机都需要重新解析U盘的文件系统,降低了用户体验。
为了解决上述技术问题,本申请提供了一种多媒体数据库的同步方法及车机,在移动存储器首次与车机连接时,将该移动存储器对应的节点的名称和数据表存储在车机的数据库中,当移动存储器非首次与车机连接时,获取移动存储器的文件系统的变更部分并针对该变更部分更新数据库,快速实现文件系统的同步,以使用户更快的获取移动存储器的文件信息,减少用户的等待时间,提升了用户体验。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要注意的是,本申请实施例提供的多媒体数据库的同步方法在实现时该移动存储器非首次与车机连接,因此需在该移动存储器首次与车机连接时建立该移动存储器对应的多媒体数据库。下面首先说明本申请建立移动存储器对应的多媒体数据库的方法。
实施例一:
本申请实施例一提供了一种多媒体数据库的建立方法,应用于车辆上的车机,下面结合附图具体说明。
参见图1,该图为本申请实施例一提供的一种多媒体数据库的建立方法的流程图。
该方法包括以下步骤:
S101:获得移动存储器首次连接车机时移动存储器中所有文件夹和文件之间的关系;所述文件的内容为多媒体数据。多媒体数据至少包括以下一种:图片、音频和视频。
当移动存储器首次连接车机时,从移动存储器的根目录开始,获取所有文件夹和文件的关系。对于一个文件夹,其中可以同时包括文件和下一级的文件夹,可以只包括下一级的文件夹,也可以只包括文件,还可以为空文件夹。将移动存储器的根目录作为一个文件夹,可以命名为“/”,该文件包括其它所有的文件夹。
S102:将每个文件夹和文件分别对应生成一个节点;每个节点包括ID和名称。
文件系统的每个文件夹和文件分别对应一个节点。其中,节点的名称为对应的文件夹或文件的名称,节点的名称可以用name表示。
节点的ID通过自动增长来生成,因此具有唯一性,每个节点的ID均不相同,节点的ID可以用node_id表示。
例如:文件系统的根目录下包括“文件夹1”以及“龙拳.mp3”,在“文件夹1”中包含“老友记.mp4”和“不睡.mp3”。则此时该文件系统对应的节点和ID具体如表1所示。
表1
node_id | name |
1 | / |
2 | 文件夹1 |
3 | 龙拳.mp3 |
4 | 老友记.mp4 |
5 | 不睡.mp3 |
表1中node_id通过自动增长来生成,将整个移动存储器视作一个文件夹时,即作为根文件夹,根文件夹对应节点的名称用“/”表示,根文件夹的节点ID为1,其它节点的ID依次增加,node_id具有唯一性,能够唯一的标识表中的name。name对应文件或文件夹的名称。
S103:根据所有文件夹和文件之间的关系获得所有节点之间的关系。
所有的文件夹和文件都有唯一对应一个节点,因此根据所有文件夹和文件之间的关系可以获得所有节点之间的关系。
本实施例所述方法构建了文件系统的闭包结构,该闭包结构包括节点(node)表和闭包(closure)表。其中,节点表用于存储所有的节点ID和节点名称的对应关系,上述表1即为节点表。闭包表包括节点表中所有节点之间的关系。
下面首先说明闭包的含义。
闭包是离散数据中的概念,关于何为闭包集有以下相关定义:
定义1:二元关系是集合A,B的笛卡尔积A×B的子集,是有序对的集合,即R={<x,y>|x∈A∧y∈B},当A=B时称为集合A(或B)上的二元关系。
定义2:设R是集合X到Y的关系,S为Y到Z的关系,则称R°S称为R和S的复合关系,表示为
定义3:设R是集合A上的二元关系,对于任意x∈A,<x,y>∈R,且对于任意x,y∈A,如果x≠y,则则R称为A中的恒等关系,记做IA。
定义4:R为集合上的二元关系,对于有且<a,c>∈R,则称R为A上的传递关系,或者说R在A上具有传递性。
定义5:设R是集合A上的二元关系,在R中添加最少的序偶集合R`,使得R∪R`具有传递性,则t(R)=R∪R`是R的传递闭包。
如果关系R本身具有传递性质,则t(R)=R。
定理1:设A是含有n个元素的集合,R是A上的二元关系,则存在一个正整数k≤n,使得t(R)=R∪R2∪R3…∪Rk。
定义6:设R是集合A上的二元关系,若IR={<x,x>|x∈A且<x,x>∈R},则成IR为R中恒等关系的集合。
本申请实施例将节点之间的关系记录在数据表中,该数据表即闭包表,数据表包含三列,分别为:后代节点(descendant),祖先节点(ancestor)和父亲节点(parent)。
根目录对应的节点为根节点,根节点的后代节点、祖先节点和父亲节点均为其本身,同时根节点可以作为其它所有节点的祖先节点。
对于一个后代节点,只能确定唯一的父亲节点,该父亲节点也可以作为该后代节点的祖先节点,该父亲节点的父亲节点也可以作为该后代节点的祖先节点。
在一种可能的实现方式中,车机根据树状结构确定所有节点之间的关系。
树状结构是一种非线性结构数据,它可以很好地描述文件系统中文件夹和文件的分支关系或层次特性。树状结构的最顶层只有一个节点,为根节点即文件系统的根目录,除根节点外,其它所有的节点会有高一层的父节点。一个节点可以有多个后代节点或没有后代节点。后代节点可以是文件夹或文件,父亲节点只能是文件夹或根目录,树状结构可以存储在车机的内存中。
下面结合附图举例说明。
参见图2,该图为本申请实施一提供的树状结构的示意图。
当移动存储器第一次与车机连接时,此时数据库中没有该移动存储器对应的数据,车机会在数据库中对该移动存储器进行根目录的添加,生成一个只有根节点的树状结构。然后根据该移动存储器中所有文件夹和文件之间的关系,生成完整的树状结构。
该树状结构表示的文件系统的根节点“/”下包括“文件夹1”以及“龙拳.mp3”两个后代节点,在“文件夹1”中包含“老友记.mp4”和“不睡.mp3”两个后代节点。“老友记.mp4”和“不睡.mp3”的父亲节点是“文件夹1”是,祖先节点时“文件夹1”和根节点。该树状结构体现了所有节点之间的关系。
S104:将所有节点之间的关系以节点的ID形成数据表。
数据表中记录了所有节点之间的关系,即记录了所有文件夹和文件之间的关系,具体记录了每个后代节点,以及该后代节点对应的祖先节点和父亲节点。
下面举例具体说明:
对于表1对应的文件系统,其数据表如表2所示。
表2
根节点的ID为1,根节点的祖先节点和父亲节点都是本身。“文件夹1”的ID为2,其祖先节点和父亲节点都是根节点。“龙拳.mp3”的ID为3,其祖先节点和父亲节点都是根节点。“老友记.mp4”的ID为4,其父亲节点为“文件夹1”,其祖先节点为“文件夹1”和根节点,“不睡.mp3”的ID为5,其父亲节点为“文件夹1”,其祖先节点为“文件夹1”和根节点。
S105:将每个节点的名称和数据表存储在车机的数据库中。
当移动存储器首次与车机连接时,车机可以获取移动存储器的序列号,将该移动存储器对应的节点的名称和数据表,以及移动存储器的序列号对应存储在车机的数据库中,以在该移动存储器再次与车机连接时,快速匹配寻找到该移动存储器对应的节点的名称和数据表。
下面继续以该移动存储器为U盘举例说明。
例如当U盘1首次插入车机时,车机在数据库中将U盘1的序列号和U盘1对应的节点的名称和数据表对应存储。当U盘2首次插入时,车机根据U盘2的序列号无法在数据库中匹配到U盘2对应的节点的名称和数据表,车机会将U盘2的序列号以及U盘2对应的节点的名称和数据表对应存储。当U盘1再次插入车机时,车机才能根据U盘1的序列号匹配寻找到U盘1对应的节点的名称和数据表。
车机上运行的应用程序可以调用数据库中存储的移动存储器对应节点的名称和数据表,进而可以在车机的屏幕上显示移动存储器的文件信息,例如音乐播放应用程序可以显示移动存储器上的音频文件信息,视频播放应用程序可以显示移动存储器上的视频文件信息,以便于用户获取移动存储器的文件信息。
可以理解的是,上述步骤的顺序仅是为了方便解释说明,并不构成对于本申请的限定,例如可以将S101和S102的顺序进行调换,即当移动存储器首次插入车机时,可以先根据每个文件夹和文件分别对应生成一个节点,再获取所有文件夹和文件之间的关系,还可以同时进行S101和S102。
利用本申请实施例提供的方法,在移动存储器首次与车机连接时,将该移动存储器对应的节点的名称和数据表存储在车机的数据库中,因此当该移动存储器的文件系统不发生变动并且再次与车机连接时,车机可以快速获取该移动存储器对应的节点的名称和数据表,进而使车机可以快速获取移动存储器的文件信息,减少了用户的等待时间,提升了用户体验。
实际应用中,移动存储器非首次与车机连接时,其文件系统和首次与车机连接时的文件系统相比可能发生变化,例如可能添加或删除了一些文件或文件夹,此时需要对数据库中存储的该移动存储器对应的节点的名称和数据表进行更新,因此基于实施例一提供的多媒体数据库的建立方法,本申请实施例二还提供了一种多媒体数据库的同步方法,用于当该移动存储器非首次与车机连接时对数据库进行更新同步。
实施例二:
本申请实施例二提供了一种多媒体数据库的同步方法,下面结合附图具体说明。
参见图3,该图为本申请实施例二提供的一种多媒体数据库的同步方法的流程图。
该方法包括以下步骤:
S301:当移动存储器非首次与车机连接时,根据车机的数据库中存储的移动存储器对应的节点的名称和数据表生成第一树状结构。当移动存储器非首次与车机连接时,车机获取移动存储器的序列号,通过该序列号在数据库中匹配获取该移动存储器对应的节点的名称和数据表。
然后根据该移动存储器对应的节点的名称和数据表生成第一树状结构,对于任意节点,数据表包括了与该节点有关系的所有其它节点以及具体的层级关系,即包括了该节点与父亲节点的关系、与祖先节点的关系,以及与后代节点的关系,而不仅仅是只包括该节点的父子关系,因此能够快速准确的由数据表中的数据生成第一树状结构,具体包括以下步骤:
首先,根据节点的名称和数据表获得第一树状结构的根节点作为第一树状结构的第一部分;根节点对应的后代节点的ID、祖先节点的ID和父亲节点的ID均相同。
参见图4,该图为本申请实施例二提供的第一树状结构生成过程的示意图
该第一树状结构对应于表1和表2的文件系统,根节点对应的后代节点的ID、祖先节点的ID和父亲节点的ID均相同,因此从表2中可以确定ID为1的节点是根节点,将根节点作为第一树状结构的第一部分。
然后,查找以根节点为父亲节点的子节点,根据子节点与所述根节点之间的关系获得第一树状结构的第二部分。
由表2可以确定根节点的子节点的ID分别为1、2和3,将根节点自身剔除,在表1中ID为2的节点对应“文件夹1”,ID为3的节点对应“龙拳.mp3”,此时“文件夹1”和“龙拳.mp3”作为第一树状结构的第二部分。
最后,查找以子节点为父亲节点的下一级节点,根据下一级节点与子节点之间的关系获得第一树状结构的第三部分,以此类推,直至获得所述第一树状结构。
以“文件夹1”为父亲节点查找下一级节点,由表2可以确定“文件夹1”的子节点的ID分别为4和5,在表1中ID为4的节点对应“老友记.mp4”,ID为5的节点对应“不睡.mp3”。
以“龙拳.mp3”为父亲节点查找下一级节点,由表2可以确定“龙拳.mp3”不存在下一级节点。
此时“文件夹1”和“不睡.mp3”作为第一树状结构的第三部分。
以“文件夹1”和“龙拳.mp3”为父亲节点时不存在下一级节点,此时已生成完整的第一树状结构。
可以理解的是,该实例仅为方便说明第一树状结构的生成过程,并不构成对第一树状结构的限定。
S302:根据本次与车机连接的移动存储器中的所有文件夹和文件生成第二树状结构。
车机生成第二树状结构以表示本次与车机连接的移动存储器的所有文件夹和文件的分支关系和层次特征。
S303:将第一树状结构和第二树状结构进行比对,获得比对结果。
将第二树状结构与第一树状结构进行比对,确定树状结构的变更节点,即确定出了当前移动存储器出现变更的文件夹或文件。
比对结果包括:第二树状结构存在部分节点被删除和/或第二树状结构增加了部分节点。节点可以对应某个文件或文件夹。
可以理解的是,移动存储器中的某个文件从A文件夹被迁移到B文件夹,可视作该文件在A文件夹下被删除,然后增加在了B文件夹。
S304:根据比对结果更新节点的名称和数据表。
对于任意节点,数据表包括了与该节点有关系的所有其它节点以及具体的层级关系,而不仅仅只包括父子关系。当节点发生变更时,能够快速定位变更部分在数据表中的准确位置,并针对数据变更部分进行更新,而不需要逐层对表内数据进行查找定位,因此能够减少更新数据表的时间。确定出了当前移动存储器出现变更的文件夹或文件时,车机针对出现变更文件夹或文件更新节点的名称和数据表,以实现数据库的同步。
当比对结果为与第一树状结构相比第二树状结构存在被删除的文件夹或文件时,具体包以下步骤:
a:通过数据表查找被删除的文件夹或文件对应的节点。
继续参见图4所示的树状结构,以该树状结构为第一树状结构,例如当第二树状结构与第一树状结构相比,其中的“文件夹1”被删除时,“文件夹1”的节点ID为2。
b:将被删除的文件夹或文件对应的节点以及对应的所有后代节点均从数据表中删除,并在数据库中删除所述被删除的文件夹或文件对应的节点的名称。
更新数据表时,由于数据表包括了与文件夹1有关系的所有其它节点以及具体的层级关系,因此当文件夹1被删除时,从数据表中删除所有父亲节点和祖先节点为文件夹1的数据,能够快速完成对数据表的更新。
从数据表中删除“文件夹1”及其后代节点,可以通过数据表查找并删除节点ID为2的后代节点以及以该后代节点为父亲节点或祖先节点的节点,更新后的数据表如表3所示。
表3
descendant | Ancestor | parent |
1 | 1 | 1 |
3 | 1 | 1 |
另外,还在数据库中删除“文件夹1”及其后代节点对应的节点名称。
当比对结果为与第一树状结构相比第二树状结构存在被增加的文件夹或文件时,具体包括以下步骤:
c:在第二树状结构中查找被增加的文件夹或文件对应的节点与其他节点的关系,根据被增加的文件夹或文件对应的节点与其他节点的关系在数据表中增加相应节点,并在数据库中增加被增加的文件夹或文件对应的节点的名称。
继续以图4所示的树状结构为第一树状结构,例如当第二树状结构与第一树状结构相比,其中的“文件夹1”下增加了“文件夹2”,此时车机在第二树状结构中查找“文件夹2”对应的节点的父亲节点为“文件夹1”,祖先节点为“文件夹1”和“/”,“文件夹2”对应的节点ID通过自动增长来生成,则其节点ID为6,节点名称为文件夹2。
更新数据表时,由于数据表包括了与“文件夹1”有关系的所有其它节点以及具体的层级关系,因此当在“文件夹1”下增加“文件夹2”时,确定“文件夹2”的父亲节点为文件夹1,“文件夹2”的祖先节点为“文件夹1”和根节点,而“龙拳.mp3”和“老友记.mp4”与“文件夹2”在数据表中无对应的行数据。因此能够快速准确确定变更节点在数据表中对应的位置,以快速完成对数据表的更新。
更新后的数据表如表4所示。
表4
descendant | ancestor | parent |
1 | 1 | 1 |
2 | 1 | 1 |
3 | 1 | 1 |
4 | 2 | 2 |
4 | 1 | 2 |
5 | 2 | 2 |
5 | 1 | 2 |
6 | 2 | 2 |
6 | 1 | 2 |
另外,还在数据库中增加被增加的文件夹或文件对应的节点的名称。
当移动存储器中的某个文件夹或文件发生迁移时,可以认为删除了原位置的该文件夹或文件,又在新位置上增加了该文件夹或文件。例如当“龙拳.mp3”被迁移到“文件夹1”的目录下时,可以认为在根目录下删除了“龙拳.mp3”并在“文件夹1”的目录下增加了“龙拳.mp3”。
本申请实施例所述的第一树状结构和第二树状结构均是保存在车机的内存中,并不保存在车机的数据库中,以减少占用数据库的空间。
可以理解的是,上述步骤a-c的先后顺序并不构成对于本申请的限定,当第二树状结构与第一树状结构相比,既存在增加文件夹或文件,又存在被删除的文件夹或文件时,也可以先执行c,然后执行a。
利用本申请实施例提供的多媒体数据库的同步方法,当移动存储器非首次与车机连接时,根据数据库中存储的该移动存储器对应的节点的名称和数据表生成第一树状结构,将第一树状结构与当前移动存储器对应的第二树状结构进行比对,快速的到移动存储器的文件系统的变根节点,针对文件系统的变更节点可以快速完成数据库的删除动作及增加动作,实现数据库的同步更新,以便于车机能够更快获取移动存储器上的文件信息。
实施例三:
基于上述实施例提供的多媒体数据库的建立方法,本申请实施例三还提供了一种车机,能够在该车机上建立多媒体数据库,下面结合附图具体说明。
参见图5,该图为本申请实施例三提供的一种车机的示意图。
车机500包括:硬盘501、USB接口502和控制器503。
控制器503能够获得移动存储器首次连接USB接口502时移动存储器中的所有文件夹和文件之间的关系,并将每个文件夹和文件分别对应生成一个节点。
其中,每个节点包括ID和名称,节点的名称为节点对应的文件夹或文件的名称。节点的ID通过自动增长来生成,每个节点的ID均不相同。
控制器503根据所有文件夹和文件之间的关系获得所有节点之间的关系,并将所有节点之间的关系以节点的ID形成数据表。
具体的,该控制器构建了文件系统的闭包结构,该闭包结构主要包括节点表和闭包表,节点表用于存储所有的节点ID和节点名称的对应关系;闭包表即数据表,包括节点表中所有节点之间的关系。
然后控制器503将每个节点的名称和数据表存储在硬盘501的数据库中,在一种可能的实现方式中,将节点表和数据表存储在硬盘501的数据库中。
进一步的,对于首次连接USB接口502的移动存储器,控制器503可以获取该移动存储器的序列号,将该移动存储器对应的节点的名称和数据表,以及移动存储器的序列号对应存储在硬盘501的数据库中,以便在该移动存储器再次插入车机时,快速匹配寻找到该移动存储器对应的节点的名称和数据表。因为不同的移动存储器具有不同的序列号,因此控制器503可以通过移动存储器的序列号有效的将不同的移动存储器进行区分,避免匹配到不对应的节点的名称和数据表。
利用本申请实施例提供的车机,能够当移动存储器首次连接USB接口时,将该移动存储器对应的节点的名称和数据表存储在硬盘的数据库中,当该移动存储器的文件系统不发生变动并且再次插入车机时,车机可以快速获取该移动存储器对应的节点的名称和数据表,进而可以快速获取该移动存储器的文件信息,减少了用户的等待时间,提升了用户体验。
实施例四:
基于上述实施例提供的多媒体数据库的同步方法,本申请实施例四还提供了另一种车机,能够在该车机上建立并且更新多媒体数据库,下面结合附图具体说明。
继续参见图5,本申请实施例提供的车机同样包括:硬盘501、USB接口502和控制器503。
控制器503可以在移动存储器首次连接USB接口502时将该移动存储器对应的节点的名称和数据表存储在硬盘501的数据库中,具体过程可以参见实施例三,在此不再赘述。
当移动存储器非首次连接USB接口502时,控制器503获取该移动存储器的序列号,通过该序列号在硬盘501的数据库中匹配获取该移动存储器对应的节点的名称和数据表。
控制器503根据数据库中存储的该移动存储器对应的节点的名称和数据表生成第一树状结构,具体过程如下:
控制器503根据节点的名称和数据表获得第一树状结构的根节点,将该根节点作为第一树状结构的第一部分;根节点对应的后代节点的ID、祖先节点的ID和父亲节点的ID均相同。
控制器503查找以根节点为父亲节点的子节点,根据子节点与根节点之间的关系获得第一树状结构的第二部分。
控制器503查找以子节点为父亲节点的下一级节点,根据下一级节点与子节点之间的关系获得第一树状结构的第三部分,以此类推,直至获得所述第一树状结构。
控制器503还能够根据本次与USB接口502连接的移动存储器中的所有文件夹和文件生成第二树状结构并将第一树状结构和第二树状结构进行比对,获得比对结果,然后根据所述比对结果更新节点的名称和数据表。
对于任意节点,数据表包括了与该节点有关系的所有其它节点以及具体的层级关系,而不仅仅只包括父子关系。当节点发生变更时,能够快速定位变更部分在数据表中的准确位置,并针对数据变更部分进行更新,不需要逐层对表内数据进行查找定位,因此能够减少更新数据表的用时。
当比对结果为与第一树状结构相比第二树状结构存在被删除的文件夹或文件时,控制器503通过数据表查找被删除的文件夹或文件对应的节点,然后将被删除的文件夹或文件对应的节点以及对应的所有后代节点均从数据表中删除,并在硬盘501的数据库中删除所述被删除的文件夹或文件对应的节点的名称。
当比对结果为与第一树状结构相比第二树状结构存在被删除的文件夹或文件时,控制器503在第二树状结构中查找被增加的文件夹或文件对应的节点与其他节点的关系,根据被增加的文件夹或文件对应的节点与其他节点的关系在数据表中增加相应节点,并在数据库中增加被增加的文件夹或文件对应的节点的名称。
利用本申请实施例提供的车机,当移动存储器非首次与车机连接时,控制器能够根据数据库中存储的该移动存储器对应的节点的名称和数据表生成第一树状结构,将第一树状结构与当前移动存储器对应的第二树状结构进行比对,快速得到移动存储器的文件系统的变根节点,针对文件系统的变更节点可以快速完成数据库的删除动作及增加动作,实现数据库的同步更新,以便于用户能够更快获取移动存储器上的文件信息。
本申请实施例提供的车机,由于移动存储器首次与车机连接时已经将该移动存储器中的文件以及文件夹的名称和数据表对应保存在数据库中,以后每次移动存储器与车机连接时,通过建立树状结构来同步移动存储器本次与上次插入时的区别即可,车机不必再遍历移动存储器中的所有文件夹和文件,因此,更加节省时间。例如对于上万首歌曲,现有技术中的解析需要半小时,而采用本申请的同步方式仅需要1-2分钟即可完成同步。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (11)
1.一种多媒体数据库的同步方法,其特征在于,所述方法包括:
当移动存储器非首次与车机连接时,根据所述车机的数据库中存储的所述移动存储器对应的节点的名称和数据表生成第一树状结构;所述移动存储器的所述节点的名称和所述数据表在所述移动存储器首次与所述车机连接时获得;所述节点的名称为所述移动存储器首次连接所述车机时的所有文件和文件夹的名称;所有所述节点之间的关系以所述节点的ID形成所述数据表;所述文件的内容为多媒体数据;
根据本次与所述车机连接的所述移动存储器中的所有文件夹和文件生成第二树状结构;
将所述第一树状结构和第二树状结构进行比对,获得比对结果;
根据所述比对结果更新所述节点的名称和所述数据表。
2.根据权利要求1所述的同步方法,其特征在于,所述移动存储器的所述节点的名称和所述数据表在所述移动存储器首次与所述车机连接时获得,具体包括:
获得所述移动存储器首次连接所述车机时所述移动存储器中所有文件夹和文件之间的关系;每个所述文件夹和文件分别对应一个节点,每个所述节点包括ID和名称;
根据所述所有文件夹和文件之间的关系获得所有所述节点之间的关系,
将所有所述节点之间的关系以所述节点的ID形成数据表;
将每个所述节点的名称和所述数据表存储在所述车机的数据库中。
3.根据权利要求1所述的同步方法,其特征在于,在根据所述车机的数据库中存储的所述移动存储器对应的节点的名称和数据表生成第一树状结构,之前还包括:
根据本次插入的移动存储器的序列号查找对应的数据表和对应的节点的名称。
4.根据权利要求1所述的同步方法,其特征在于,所述根据所述车机的数据库中存储的所述移动存储器对应的节点的名称和数据表生成第一树状结构,具体包括:
根据所述节点的名称和所述数据表获得所述第一树状结构的根节点作为所述第一树状结构的第一部分;所述根节点对应的后代节点的ID、祖先节点的ID和父亲节点的ID均相同;
查找以所述根节点为父亲节点的子节点,根据所述子节点与所述根节点之间的关系获得第一树状结构的第二部分;
查找以所述子节点为父亲节点的下一级节点,根据所述下一级节点与所述子节点之间的关系获得第一树状结构的第三部分,以此类推,直至获得所述第一树状结构。
5.根据权利要求1所述的同步方法,其特征在于,所述根据所述比对结果更新所述节点的名称和所述数据表,具体包括:
当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被删除的文件夹或文件时,则通过所述数据表查找所述被删除的文件夹或文件对应的节点;
将所述被删除的文件夹或文件对应的节点以及对应的所有后代节点均从所述数据表中删除,并在所述数据库中删除所述被删除的文件夹或文件对应的节点的名称。
6.根据权利要求1-5任一项所述的同步方法,其特征在于,根据所述比对结果更新所述节点的名称和所述数据表,具体包括:
当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被增加的文件夹或文件时,则在所述第二树状结构中查找所述被增加的文件夹或文件对应的节点与其他节点的关系,根据所述被增加的文件夹或文件对应的节点与其他节点的关系在所述数据表中增加相应节点,并在所述数据库中增加所述被增加的文件夹或文件对应的节点的名称。
7.一种车机,其特征在于,用于更新多媒体数据库,包括:USB接口、硬盘和控制器;
所述控制器,用于当移动存储器非首次连接所述USB接口时,根据所述硬盘的数据库中存储的所述移动存储器对应的所述节点的名称和所述数据表生成第一树状结构;所述移动存储器的所述节点的名称和所述数据表在所述移动存储器首次与所述车机连接时获得;所述节点的名称为所述移动存储器首次连接所述车机时的所有文件和文件夹的名称;所有所述节点之间的关系以所述节点的ID形成所述数据表;所述文件的内容为多媒体数据;将本次与所述USB口连接的所述移动存储器中的所有文件夹和文件生成第二树状结构;将所述第一树状结构和第二树状结构进行比对,获得比对结果;根据所述比对结果更新所述节点的名称和所述数据表。
8.根据权利要求7所述的车机,其特征在于,所述控制器,还用于获得所述移动存储器首次连接所述USB接口时所述移动存储器中的所有文件夹和文件之间的关系,每个所述文件夹和文件分别对应一个节点,每个所述节点包括ID和名称;根据所述所有文件夹和文件之间的关系获得所有所述节点之间的关系;将所有所述节点之间的关系以所述节点的ID形成数据表;将每个所述节点的名称和所述数据表存储在所述硬盘的数据库中。
9.根据权利要求7所述的车机,其特征在于,所述控制器,还用于根据本次插入移动存储器的序列号查找对应的数据表和对应的节点的名称。
10.根据权利要求7所述的车机,其特征在于,所述控制器,具体用于当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被删除的文件夹或文件时,则通过所述数据表查找所述被删除的文件夹或文件对应的节点;将所述被删除的文件夹或文件对应的节点以及对应的所有后代节点均从所述数据表中删除,并在所述数据库中增加所述被增加的文件夹或文件对应的节点的名称。
11.根据权利要求7-10任一项所述的车机,其特征在于,所述控制器,具体用于当所述比对结果为与所述第一树状结构相比所述第二树状结构存在被增加的文件夹或文件时,则在所述第二树状结构中查找所述被增加的文件夹或文件对应的节点与其他节点的关系,根据所述被增加的文件夹或文件对应的节点与其他节点的关系在所述数据表中增加相应节点,并在所述数据库中增加所述被增加的文件夹或文件对应的节点的名称。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910672944.6A CN110377565A (zh) | 2019-07-24 | 2019-07-24 | 一种多媒体数据库的同步方法及车机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910672944.6A CN110377565A (zh) | 2019-07-24 | 2019-07-24 | 一种多媒体数据库的同步方法及车机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110377565A true CN110377565A (zh) | 2019-10-25 |
Family
ID=68255691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910672944.6A Pending CN110377565A (zh) | 2019-07-24 | 2019-07-24 | 一种多媒体数据库的同步方法及车机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377565A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000008632A1 (en) * | 1998-08-06 | 2000-02-17 | New York University | Method for determining actionable patterns in a database |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、系统及客户端 |
CN104809190A (zh) * | 2015-04-21 | 2015-07-29 | 浙江大学 | 一种树形结构数据的数据库存取方法 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN108573014A (zh) * | 2017-12-19 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种文件同步方法、装置、电子设备及可读存储介质 |
CN109766337A (zh) * | 2018-11-28 | 2019-05-17 | 杭州云为科技有限公司 | 树形结构数据的存储方法、电子设备、存储介质及系统 |
-
2019
- 2019-07-24 CN CN201910672944.6A patent/CN110377565A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000008632A1 (en) * | 1998-08-06 | 2000-02-17 | New York University | Method for determining actionable patterns in a database |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、系统及客户端 |
CN104809190A (zh) * | 2015-04-21 | 2015-07-29 | 浙江大学 | 一种树形结构数据的数据库存取方法 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN108573014A (zh) * | 2017-12-19 | 2018-09-25 | 北京金山云网络技术有限公司 | 一种文件同步方法、装置、电子设备及可读存储介质 |
CN109766337A (zh) * | 2018-11-28 | 2019-05-17 | 杭州云为科技有限公司 | 树形结构数据的存储方法、电子设备、存储介质及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645787B1 (en) | Tag-based electronic media playlist processing | |
US7734577B2 (en) | Composite user interface and framework | |
EP1176523A2 (en) | System for providing extended file attributes | |
CN101877711B (zh) | 社会网络建立方法及装置、以及社区发现方法及装置 | |
CN102929936B (zh) | 日志记录方法、日志查询方法及系统 | |
US20090228482A1 (en) | Network search method, system and device | |
CN107924679A (zh) | 输入理解处理期间在响应选择中的延迟绑定 | |
CN106339450B (zh) | 一种树形数据的索引方法 | |
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
CN106682003B (zh) | 分布式存储命名空间的路径分割映射方法和装置 | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
US20070143286A1 (en) | File management method in file system and metadata server therefor | |
CN102915278A (zh) | 重复数据删除方法 | |
KR20080023299A (ko) | 개시 장치에서 인덱스 데이터베이스를 생성하기 위한 방법및 시스템 | |
CN102184211A (zh) | 文件系统和检索、写入、修改或删除文件的方法与装置 | |
Johnson | Fan fiction metadata creation and utilization within fan fiction archives: Three primary models | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
CN110636345B (zh) | 一种同一身份账号下的多媒体信息共享方法和系统 | |
CN107092667B (zh) | 基于社交网络的群组查找方法和装置 | |
US11573961B2 (en) | Delta graph traversing system | |
CN108427767B (zh) | 一种知识主题和资源文件的关联方法 | |
CN107679182A (zh) | 一种目录配置方法及装置 | |
CN103049574A (zh) | 实现文件动态副本的键值文件系统及方法 | |
CN106407376A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191025 |
|
RJ01 | Rejection of invention patent application after publication |