一种用于CMS系统中自定义数据格式的处理方法和系统与流程

文档序号:23470372发布日期:2020-12-29 13:12阅读:83来源:国知局
本发明涉及一种动态自定义数据格式的方法,特别是涉及一种用于cms系统中自定义数据格式的处理方法和系统。
背景技术
::针对文本处理,cms系统中通常会定义特定格式的稿件类型,例如:“新闻”类,自定义新闻的标题、日期、作者、摘要、正文等必要字段;“法律法规”类,自定义稿件中的有生效日期、时限等必要字段。这些自定义的稿件类型和所包含的必要字段通常称之模板,可以加快网站开发的速度和减少开发的成本。cms系统中,对象的组织是“容器-对象”的形式,比如常见的“栏目-稿件”形式。传统的orm(objectrelationalmapping)仅能针对容器或对象单独进行抽象,不能针对它们之间的联系进行灵活查询。sql(structuredquerylanguage,结构化查询语言)可以针对实体(entity)和关系(relation)进行查询,但关系型数据库中的数据基本都是以行的方式进行存取的,而程序运行却是一个个对象进行处理。目前大部分数据库驱动技术(如ado.net、jdbc、odbc等等)也均是以行集的结果集一条条进行处理。在传统系统中,对象结构往往都是预先定义好的,当业务发生变化出现新的稿件类型或者需要对稿件类型进行调整时,需要程序员的介入,在数据库中新增和/或修改表、字段以及编写相应代码来完成系统的升级,不能随着业务发展进行动态定义。即使可以进行修改,也伴随着程序代码的调整,扩展性不足。技术实现要素:鉴于以上所述现有技术的缺点,本发明的目的在于提供一种用于cms系统中自定义数据格式的处理方法和系统,用于解决现有技术中当业务发生变化出现新的稿件类型或者需要对稿件类型进行调整时,需要程序员的介入,在数据库中新增和/或修改表、字段以及编写相应代码来完成系统的升级,导致使用时不方便,尤其在网站的总体设计和管理上缺乏数据的可管理性和数据的完整性的技术问题。本发明提供一种用于cms系统中自定义数据格式的处理方法,所述方法包括以下步骤:将业务对象的属性字段按类型拆分成多张数据表,并储存在数据库中,所述业务对象可创建自定义属性;定义业务对象的数据库接口kdo,对数据表中的数据进行封装;根据所需要扩充的业务对象,利用所述数据库接口kdo对数据库中的数据进行查询,并返回sql语句;将所述sql语句转化成业务对象的格式,实现对业务对象的扩充。于本发明的一实施例中,把业务对象数据的简单数据格式和二进制格式分开存储在不同的数据表中,所述不同的数据表通过相同的对象id进行关联,所述业务对象包括栏目对象和稿件对象。于本发明的一实施例中,根据所需要扩充的业务对象,利用所述数据库接口kdo对数据库中的数据进行查询,并返回查询结果,具体步骤包括:根据模板所需要扩充的数据,输入一个具体的查询语句kdosql;根据查询语句kdosql在表中提取单个的单词及其属性,并将单词及其属性存入单词链表中;根据单词词义将不同的单词存入单词链表的相应的结构中;按照sql的语法规则,将所述单词拼装成sql语句。于本发明的一实施例中,将所述sql语句转化成业务对象的格式,实现对业务对象的扩充,具体包括:将sql语句转化成栏目对象和/或稿件对象,及栏目对象和/或稿件对象的属性。一种用于cms系统中自定义数据格式的处理系统,所述系统包括:业务对象拆分模块,将业务对象的属性字段按类型拆分成多张数据表,并储存在数据库中,所述业务对象可创建自定义属性;定义查询语言模块定义业务对象的数据库接口kdo,对数据表中的数据进行封装;查询模块,根据所需要扩充的业务对象,利用所述数据库接口kdo对数据库中的数据进行查询,并返回sql语句;;对象扩充模块,将所述sql语句转化成业务对象的格式,实现对业务对象的扩充。如上所述,本发明具有以下有益效果:本发明将业务逻辑封装为数据对象,采用数据库接口kdo的方式访问数据库中的数据。kdo是一种面向对象的编程接口,是对数据库简单直接、有效操作的方法,从而使得大部分数据源可编程的属性得以直接扩展到页面上。通过提供数据对象管理,为用户提供了一个自定义数据对象的空间。数据对象即是稿件类型,默认的稿件类型一般为文章,但是模板编辑者可以根据实际需要自定义数据对象,例如:商户简介、新闻图片、栏目等等。稿件录入时选择不同的稿件类型,则在相应的稿件录入界面中出现的稿件字段名也不同。采用数据对象对网站发布内容进行分类管理,每个数据对象可由多种数据类型的属性构成,使网站改版和扩充非常容易,cms系统能够适应业务的变化,不需要程序员的介入,由模板编辑者完成系统的更新,快速响应,降低成本提高效率。附图说明图1显示为本发明公开的流程示意图。图2显示为本发明公开的系统模块示意图。图3显示为本发明公开的kdo语义解析的数据流程图。元件标号说明01-业务对象拆分模块;02-定义查询语言模块;03-查询模块;04-对象扩充模块。具体实施方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。请参阅图1,本发明提供一种用于cms系统中自定义数据格式的处理方法,所述方法包括以下步骤:s1:将业务对象的属性字段按类型拆分成多张数据表(至少为两张),并储存在数据库中,把业务对象数据的简单数据格式和二进制格式分开存储在不同的数据表中,所述不同的数据表通过相同的对象id进行关联,简单数据格式包括数字、日期、短文本等,二进制格式包括图像、长文本等。数据库产品通常对这两类数据分别进行优化,并且不能对二进制数据进行查询。实际业务中也主要是通过对简单数据格式进行查询,获取到对象id后再依据该id查询二进制数据,可以提升数据库访问效率;所述业务对象包括栏目对象,所述栏目对象包括稿件对象,栏目对象还可以包含其它栏目对象,栏目对象的引用参照文件夹方式,以斜杠符号“/”分隔:父栏目/一级子栏目/二级子栏目/等;所述栏目对象和稿件对象均可创建自定义属性,比如名字、标题、副标题、作者等。允许定义的属性数量没有限制、属性名称没有限制。对象支持的数据类型包括字符串、文本、整型数字、浮点型数字、图片、视频、声频、相关数据对象等;使用中,针对栏目对象,可以自定义属性;可以创建自定义对象,并创建自定义属性;s2:定义业务对象的数据库接口kdo,将数据表中的数据根据映射关系进行封装;即数据库中某张表的某个字段与kdo对象的属性相映射。同时,一般数据库中的数据表和字段的名字都要求是英文字符,kdo则允许使用中文进行更贴切的表述。kdo将不同数据库产品中的数据字段类型进行统一,只保留数字、日期、短文本、图像、长文本等类型。s3:根据所需要扩充的业务对象,利用所述数据库接口kdo对数据库中的数据进行查询,并返回sql语句,具体的:具体地,请参阅图3,根据模板所需要扩充的业务对象,输入一个具体的查询语句kdosql,查询语句为:get对象(属性列表)from栏目where条件orderby属性,例如:get会员(年龄)from俱乐部总会/英语分会/*wherename="john";注:“*”表示当在英语分会(栏目)下找不到时,继续查询下面的子分会(子栏目),直到遍历完成。根据查询语句kdosql在表中提取单个的单词及其属性,并将单词及其属性存入单词链表m_lsword中;基类cudsitranslation完成对kdosql语句的分解和翻译,再根据单词词义将不同的单词存入words链表m_lsword的相应的结构中,例如:m_lsvalue,lswhere,m_tablename等;按照sql的语法规则,将所述单词拼装成sql语句,得到查询结果,派生类ctranstosql针对数据库类型为sqlserver,进行sql语句的拼装,具体是通过重载基类的虚函数makegetsql(),makewheresql…来实现。本实施例中,所述数据库接口kdo(kerneldataobject)activex控件,目的是对建立在关系数据库上的核心数据库进行封装,模板编辑者通过数据库接口kdo可实现核心数据库的查询等功能。基于以上实施例,将所述查询结果从数据库的存储格式在内存中依据kdo映射关系转化成业务对象的格式,实现对业务对象的扩充,具体包括:将sql语句转化成栏目对象和/或稿件对象,及栏目对象和/或稿件对象的属性,例如设置好稿件对象的标题、正文、作者属性,在数据访问时,可以使用任何数据库客户端驱动程序实现,不影响本发明目的。即无论是使用oracle,mssqlserver、mysql,还是mongodb等,仅需要针对特定数据库产品进行修改皆可完成本发明。请参阅图2,一种用于cms系统中自定义数据格式的处理系统,所述系统包括:业务对象拆分模块01,将业务对象的属性字段按类型拆分成多张数据表,并储存在数据库中,所述业务对象可创建自定义属性;;定义查询语言模块02,定义业务对象的数据库接口kdo,对数据表中的数据进行封装;查询模块03,根据所需要扩充的业务对象,利用所述数据库接口kdo对数据库中的数据进行查询,并返回sql语句;对象扩充模块04,将所述sql语句转化成业务对象的格式,实现对业务对象的扩充。在cms中,通常会根据模板生成静态html文件,模板会读取数据库中的数据,根据预先定义好的规则,生成定义好的内容。在模板中,使用kdo查询方法,可以方便快速的获取数据,并按业务对象的格式提供给模板编写者,提高效率。综上所述,本发明采用数据对象对网站发布内容进行分类管理,每个数据对象可由多种数据类型的属性构成,使网站改版和扩充非常容易,cms系统能够适应业务的变化,不需要程序员的介入,由模板编辑者完成系统的更新,快速响应,降低成本提高效率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
:中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1