应用于SaaS云系统的个性化动态数据结构设计方法

文档序号:9375889阅读:240来源:国知局
应用于SaaS云系统的个性化动态数据结构设计方法
【技术领域】
[0001] 本发明属于计算机云计算技术领域,具体涉及一种应用于SaaS云系统的个性化 动态数据结构设计方法的设计。
【背景技术】
[0002] 软件即服务(SaaS,Software as a Service)是在21世纪开始兴起的一种创新的 软件应用模式。它明确的将软件定义为一种服务,将供需双方对软件商品的需求定义为对 软件服务的需求,从而将软件商业模式从商品供需模式转换为服务供需模式,成为现代服 务业中的一种特有的商业模式。从租用者的角度来看,SaaS模式消除了企业购买、构建和 维护基础设施和应用程序的需要。在这种模式下,企业可以通过互联网低廉、便捷地取得所 需软件,不需要大量的软硬件投入、人员维护等,从而节省大量成本,同时还能享受及时升 级的服务。
[0003] SaaS不仅仅是商业模式上的创新,其要取得成功更依赖于技术架构的创新。由于 SaaS系统需要同时为多个租户同时服务,因此SaaS系统的并发访问量、数据存储和检索量 都极大。不过幸运的是,随着技术的进步,特别是硬件配置的大幅度提高和软件水平的发 展,我们完全可以采用成熟的缓存技术、静态化技术、负载均衡和集群技术等手段,大幅度 地提高系统响应速度和工作效率。
[0004] 然而SaaS模式本身存在着用户的个性化需求和SaaS统一服务功能的矛盾,也就 是说,多个租户同时租赁某项SaaS服务,由于服务是统一部署在云端,因此为所有租户提 供的功能体系是相同的,如果某个租户有着特殊的数据结构要求,就不能满足了。
[0005] 目前市面上的SaaS系统以ERP或面向教育的URP最具代表性。这类系统的重要 特征是结构化数据占绝大多数,业务功能直接与数据结构相关,后端的数据存储以SQL数 据库为主,因此其数据结构的设计直接决定了其业务功能的范围。
[0006] 与普通ERP/URP系统不同,SaaS系统需要同时为多个租户单位服务,数据结构设 计除了需要遵循通用的范式要求以外,还需要区分不同的租户数据,目前流行的包括分表 和分模式两种不同的设计:
[0007] 分表式设计将所有租户的同类业务数据集中存放到同一表中,以不同的租户外键 进行区分,以某业务数据表为例,如图1所示,显然分表式设计使得所有租户的业务数据表 具有完全相同的数据结构,不能单独扩充某租户的表结构。
[0008] 分模式(Schema)的设计方式将不同租户数据分属不同的数据库模式下,如图2所 示,每个不同租户分别访问各自的数据模式实例,相互独立。理论上,这样的设计使得不同 租户的数据表结构可以不同,而不会有交叉影响。然而从实际部署和运维角度,如果不同租 户的数据实例不同,这将为未来的数据统一升级和维护带来极大的麻烦,甚至危险。因此在 大部分情况下,我们希望或者必须保证所有租户的数据实例结构保持一致。
[0009] 从上面的分析可以看出,无论采用分表还是分模式方式的设计,都不能很好地解 决由于租户不同的业务需求而带来的数据结构个性化的问题。

【发明内容】

[0010] 本发明的目的是为了解决现有技术中由于租户不同的业务需求而带来的数据结 构个性化的问题,提出了一种应用于SaaS云系统的个性化动态数据结构设计方法。
[0011] 本发明的技术方案为:一种应用于SaaS云系统的个性化动态数据结构设计方法, 包括以下步骤:
[0012] S1、设计数据表 dyn_struct ;
[0013] S2、设计数据表 dyn_data ;
[0014] S3、进行个性化数据保存。
[0015] 进一步地,步骤Sl中数据表dyn_struct具体为:
[0016]
[0017] 进一步地,步骤S2中数据表dyn_data具体为:
[0018]
[0019] 进一步地,步骤S3包括以下分步骤:
[0020] S31、设某租户数据表增加个性化字段F,字段类型为T,而这个字段在其它租户中 是没有的,则在属于该租户的数据分区或模式下的dyn_struct表中新建一条记录:dyn_ field_name = F,dyn_field_type = T,dyn_field_order = 1,设亲jf建该记录后,其主键值 为K ;
[0021] S32、在dyn_data表中根据需要插入不同用户的生日信息,第N号用户的F字段值 为 V,则对应的数据信息为:user_fk = N,dyn_struct_fk = K,dyn_data_value = V。
[0022] 本发明的有益效果是:本发明通过设计一种动态数据结构,实现为不同SaaS系统 用户提供个性化服务的功能,很好地解决了 SaaS模式中的个性化数据结构设计和存储的 问题。
【附图说明】
[0023] 图1为分表式设计业务数据表结构图。
[0024] 图2为分模式设计不同租户数据结构示意图。
[0025] 图3为本发明提供的应用于SaaS云系统的个性化动态数据结构设计方法流程图。
【具体实施方式】
[0026] 下面结合附图对本发明的实施例作进一步的说明。
[0027] 本发明提供了一种应用于SaaS云系统的个性化动态数据结构设计方法,如图3所 示,包括以下步骤:
[0028] S1、设计数据表dyn_struct,用于保存动态数据结构信息:
[0029]
[0030] S2、设计数据表dyn_data,用于保存动态数据结构下的具体数据值:
[0031]
[0032] S3、进行个性化数据保存。
[0033] 设某租户数据表增加个性化字段F,字段类型为T(包括字符串、数值、日期等),而 这个字段在其它租户中是没有的,设计步骤如下:
[0034] S31、在属于该租户的数据分区或模式下的dyn_struct表中新建一条记录:dyn_ field_name = F,dyn_field_type = T,dyn_field_order = 1 (后续字段依次增加),即将 为该租户新增一个动态字段,字段名为F,字段类型为T,顺序为1。设新建该记录后,其主键 值为K。
[0035] S32、在dyn_data表中根据需要插入不同用户的生日信息,第N号用户的F字段值 为 V,则对应的数据信息为:user_fk = N,dyn_struct_fk = K,dyn_data_value = V,即对 于新增的动态字段K,N号用户对应的数据值为V。
[0036] 本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发 明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的 普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各 种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
【主权项】
1. 一种应用于SaaS云系统的个性化动态数据结构设计方法,其特征在于,包括以下步 骤: 51、 设计数据表dyn_struct; 52、 设计数据表dyn_data; 53、 进行个性化数据保存。2. 根据权利要求1所述的个性化动态数据结构设计方法,其特征在于,所述步骤S1中 数据表dyn_struct具体为:3. 根据权利要求1所述的个性化动态数据结构设计方法,其特征在于,所述步骤S2中 数据表dyn_data具体为:4. 根据权利要求1-3任一所述的个性化动态数据结构设计方法,其特征在于,所述步 骤S3包括以下分步骤: 531、 设某租户数据表增加个性化字段F,字段类型为T,而这个字段在其它租户中是没 有的,则在属于该租户的数据分区或模式下的dyn_struct表中新建一条记录:dyn_field_ name=F,dyn_field_type=T,dyn_field_order= 1,设亲jf建该i己录后,其主键值为K; 532、 在dyn_data表中根据需要插入不同用户的生日信息,第N号用户的F字段值为V, 则对应的数据信息为:user_fk=N,dyn_struct_fk=K,dyn_data_value=V。
【专利摘要】本发明公开了一种应用于SaaS云系统的个性化动态数据结构设计方法,包括以下步骤:S1、设计数据表dyn_struct;S2、设计数据表dyn_data;S3、进行个性化数据保存。本发明通过设计一种动态数据结构,实现为不同SaaS系统用户提供个性化服务的功能,很好地解决了SaaS模式中的个性化数据结构设计和存储的问题。
【IPC分类】G06F17/30
【公开号】CN105095503
【申请号】CN201510545944
【发明人】唐雪飞, 陈科
【申请人】成都康赛信息技术有限公司
【公开日】2015年11月25日
【申请日】2015年8月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1