一种灵活配置额外字段的系统及其方法与流程

文档序号:11155379阅读:834来源:国知局
本发明涉及系统软件的数据库设计领域,是一种灵活配置额外字段的系统及其方法。技术背景在系统的开发中,一个系统可能会被应用到多个项目,但是多个项目的表结构不一定完全相同,举个简单的例子:A项目的用户表需要邮箱的字段,B项目的用户表需要邮箱的字段以及手机号码的字段,C项目的用户表既不需要邮箱的字段也不需要手机号码的字段;在这种情况下,一般的系统都需要修改数据表的结构,然后再修改对应的代码,每一个项目都需要去修改,积累下来的工作量非常大。另外,在修改数据表结构的时候,还要考虑旧数据的兼容,如果旧数据不兼容,会在系统运行时出现很多意想不到的错误。技术实现要素:本发明解决的技术问题之一在于提供一种灵活配置额外字段的系统,实现不修改代码,只修改额外属性表里面的数据。本发明解决的技术问题之二在于提供一种灵活配置额外字段的方法,实现当新增或编辑的时候,能够从额外属性表取出最新的额外属性,当查看的时候,能够从额外值表的冗余字段取出历史的额外属性。本发明解决上述技术问题之一的技术方案是,所述系统,包括额外属性表和额外值表;所述的额外属性表,即主表的额外字段,包含:tableName,即额外属性对应的主表的名称;code,即额外属性的字段名;name,额外属性的字段中文名;type,即生成页面元素的类型;valid,即字段值的有效性校验;disabled,表示是否禁用;datas,即字段值的穷举范围;sort,即排列顺序;deletable,表示是否删除;所述的额外值表,包含:extraKeyId,即对应额外属性的ID;extraKeyjson,即对应额外属性的json数据;tableName,即对应主表的名称,属于冗余字段;tableDataId,即对应主表的数据的ID;content,即为额外值表里的值。所述的额外字段,是存在于主表以外的字段,在主表有需要的时候,可被主表使用,不影响主表结构的完整性;所述的冗余字段,是指extraKeyJson,即对应额外属性的JSON数据;本发明解决上述技术问题之二的技术方案是,所述的方法包括如下步骤:步骤1:建立一个额外属性表,用于虚拟地充当主表的额外字段,同时建立一个额外值表,使用额外值表里面的数据,用于虚拟地充当主表里的一行数据的一个额外字段的值;步骤2:在额外值表冗余字段,用于存放额外属性JSON化之后的数据,查看当时的属性。所述的建立额外属性表,是指配置特殊字段,包括:配置tableName,可使用于系统中所有的表;配置type,客户端可根据前述的类型,生成不同种类的html;配置valid,客户端或者服务端可以根据valid的值,进行数据有效性校验;配置datas,客户端可根据datas的值,列出数据穷举范围;配置disabled,管理员可通过disabled来控制额外字段是否禁用;配置sort,客户端通过判断sort的大小,来确定额外字段的排列顺序;配置deletable,服务端通过deletable的值,来判断额外字段是否允许删除;所述建立额外值表,可配置关键字段,包括:配置extraKeyId,标记该额外值所对应的额外属性;配置tableName,属于冗余字段,快速地单独从额外值表查找数据;配置tableDataId,标记该额外值所属的主表的具体一行数据;所述的步骤1,具体包括:客户端可在主表的额外字段进行不同操作,包含增删改,添加值和修改值;所述的增删改,是指可直接向额外属性表进行增删改;所述的添加值,是指先从额外属性表读取数据并返回,客户端根据数据生成指定格式的html,客户端填写提交后,把值保存到额外值表;所述的修改值,是指从额外属性表取数据,根据额外属性,找到对应的额外值并返回,客户端根据返回的数据生成指定格式的html,客户端修改提交后,把值修改到额外值表;当客户端需要查看主表的额外字段以及值的时候,先从额外值表读取数据并返回;所述的步骤2,具体还包括:客户端从额外值表里JSON冗余字段提取出历史的额外属性,根据值和历史的额外属性,生成指定格式的html,供客户端展示。本发明具有有益效果如下:本发明的系统,能够使额外字段允许被增删改查,当一个系统被用于多个项目且表结构不完全一样的时候,实现能够不修改代码,只修改额外属性表里面的数据。本发明的方法,提供冗余机制,实现当新增或编辑的时候,可从额外属性表取出最新的额外属性,当查看的时候,可从额外值表的冗余字段取出历史的额外属性,这使得额外字段的管理不需要考虑旧数据的兼容问题。附图说明下面结合附图对本发明进一步说明:图1为本发明的数据表结构;图2为本发明的使用流程图;具体实施方式图1为本发明的数据表结构,请参见图1,额外属性表,用额外属性表里面的数据,虚拟地充当主表的额外字段,以下列出其特殊意义的字段:tableName,即额外属性对应的主表的名称,tableName使本发明可以作用于系统中所有的表;type,即生成页面元素的类型,客户端可以根据这个类型,生成不同种类的html;valid,即字段值的有效性校验,客户端或者服务端可以根据valid的值,进行数据有效性校验;datas,即字段值的穷举范围,客户端可以根据datas的值,列出数据穷举范围;disabled,即是否禁用,管理员可以通过disabled来控制额外字段是否禁用;sort,即排列顺序,客户端通过判断sort的大小,来确定额外字段的排列顺序;deletable,即是否可以删除,服务端通过deletable的值,来判断额外字段是否允许删除;额外值表,用额外值表里面的数据,虚拟地充当主表里面的一行数据的一个额外字段的值,其关键字段如下:extraKeyId,即对应额外属性的ID,用于标记该额外值所对应的额外属性;tableName,即对应主表的名称,属于冗余字段,为了能够快速地单独从额外值表查找数据;tableDataId,即对应主表的数据的ID,用于标记该额外值所属的主表的具体一行数据;extraKeyJson,即对应额外属性的JSON数据,即使额外属性表的数据后来被增删改了,也能从额外值的冗余字段取出当时的属性;图2为本发明使用流程,具体流程实现如下:当客户端需要为主表的额外字段进行增删改时,直接向额外属性表进行增删改即可;当客户端需要为主表的额外字段添加值的时候,先从额外属性表读取数据并返回,客户端根据数据生成指定格式的html,客户端填写提交后,把值保存到额外值表;当客户端需要为主表的额外字段修改值的时候,先从额外属性表取数据,再根据额外属性,找到对应的额外值并返回,客户端根据返回的数据生成指定格式的html,客户端修改提交后,把值修改到额外值表;当客户端需要查看主表的额外字段以及值的时候,先从额外值表读取数据并返回,客户端从额外值里面JSON冗余字段提取出历史的额外属性,最后根据值和历史的额外属性,生成指定格式的html,供客户端展示。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1