【技术实现步骤摘要】
【国外来华专利技术】多租户数据库系统中的自定义实体和字段专利技术背景本专利技术一般涉及多租户数据库,尤其涉及用于在多租户数据库系统中创建诸 如自定义实体和字段等自定义对象的系统和方法。在多租户数据库系统,诸如salesforce.com服务中,使用了多租户体系结构, 其中顾客组织(即,租户)共享一个逻辑数据库中的数据库资源。数据库表本身一 般是共享的;数据模型中的每一实体一般包含为每一租户区分行的organization—id(组织id)列。在此(被索引的)organizationjd列上的租户过滤器的上下文中的 所有的查询和数据处理用于确保适当的安全性和虚拟专用数据库的外观。例如在 salesforce.com系统中,该策略被用来向顾客展示诸如」ccowf (账户)、Cowto(联系人)、lead (潜在顾客)和C^ ortwm'0;(机遇)实体等的标准实体。然而,顾客可能希望向数据库系统添加除标准应用配备的标准实体和字段以 外的他们自己的自定义数据。在传统的客户机/服务器应用中,其中顾客具有其自 己的物理数据库,自定义数据的添加通常是经由针对该数据库的DDL (数据定义 语言)来完成的,以创建新的物理模式——表和列。在在线多租户数据库系统,诸 如salesforce.com服务中,由于各种原因该方法可能是无法维持的。例如,对具有 大量租户(例如,1,000或10,000或更多租户的数量级)的数据库系统,所有期望 的模式的联合将淹没底层数据词典式目录(例如,Oracle词典)。此外,维护所有 这些模式对象将是DBA (数据库管理员)的几乎不可能的负担。此外,当前的关 系型数据 ...
【技术保护点】
一种在单个多租户数据结构中为多个租户存储多个字段的计算机实现的方法,包括:定义具有多个数据列和一个或多个索引列的多租户数据结构;为第一租户定义第一数据字段,所述第一字段具有第一数据类型;为第二租户定义第二数据字段,所 述第二字段具有第二数据类型,其中所述第二数据类型不同于所述第一数据类型;当在所述第一和第二字段中具有数据值的记录由所述第一和第二租户创建时,将所述第一和第二字段的数据值存储到所述数据结构中的单个列中,其中所述单个列包括数据值,所述数 据值对不同租户具有不同数据类型;以及响应于来自所述第一租户的在所述第一数据字段中索引数据的请求,将所述单个数据列中为所述第一字段存储的数据值复制到所述索引列的第一个中。
【技术特征摘要】
【国外来华专利技术】US 2004-4-2 10/817,1611.一种在单个多租户数据结构中为多个租户存储多个字段的计算机实现的方法,包括定义具有多个数据列和一个或多个索引列的多租户数据结构;为第一租户定义第一数据字段,所述第一字段具有第一数据类型;为第二租户定义第二数据字段,所述第二字段具有第二数据类型,其中所述第二数据类型不同于所述第一数据类型;当在所述第一和第二字段中具有数据值的记录由所述第一和第二租户创建时,将所述第一和第二字段的数据值存储到所述数据结构中的单个列中,其中所述单个列包括数据值,所述数据值对不同租户具有不同数据类型;以及响应于来自所述第一租户的在所述第一数据字段中索引数据的请求,将所述单个数据列中为所述第一字段存储的数据值复制到所述索引列的第一个中。2. 如权利要求l所述的方法,其特征在于,还包括-定义具有一个或多个列的单独的数据结构;以及响应于来自所述第一租户和所述第二租户的、分别关于所述第一数据字段或 第二数据字段中的数据为唯一的指示,将分别对应于所述第一数据字段或第二数据 字段的存储在所述单个数据列中的数据值复制到所述单独的数据结构中。3. 如权利要求l所述的方法,其特征在于,所述复制包括将所复制的数据值 转换成经修改的格式。4. 如权利要求3所述的方法,其特征在于,所述转换包括对所述数据值应用 大小写折叠算法。5. —种在单个多租户数据结构中为一个或多个组织容纳多个表的计算机实现 的方法,包括定义含有主键列、组织id列和多个数据列的多租户数据结构; 为第一租户定义第一表,所述第一表具有第一数据字段,且所述第一租户具有第-一租户id;将第一表id分配给所述第一表;为第二租户定义第二表,所述第二表具有第二数据字段,且所述第二租户具 有第二租户id; 将第二表id分配给所述第二表;其中当由所述第一租户为所述第一表创建记录时,对所创建的每一记录a) 将所述第一数据字段的值存储到所述数据结构中的单个数据列;b) 将所述第一租户id存储到所述组织id列;并且 C)将所述第一表id存储到所述主键列;以及其中当由所述第二租户为所述第二表创建记录时,对所创建的每一记录a) 将所述第二数据字段的值存储到所述数据结构中的单个数据列;b) 将所述第二租户id存储到所述组织id列;并且C)将所述第二表id存储到所述主键列;以及其中所述第一和第二租户的第一和第二表被存储到所述数据结构中。6. 如权利要求5所述的方法,其特征在于,所述数据结构包括一个或多个索引列,所述方法还包括响应于来自所述第一租户的在所述第一数据字段中索引数据的请求,将所述 单个数据列中为所述第一表存储的数据值复制到所述索引列的第一个中。7. 如权利要求6所述的方法,其特征在于,所述复制包括基于所述第一租户id、所述第一表id和所述第一数据字段标识要被复制的数据值。8. 如权利要求5所述的方法,其特征在于,所述第一数据字段具有第一数据类型,且所述第二数据字段具有不同于所述第一数据类型的第二数据类型,使得所 述单个数据列包括具有所述第一和第二数据类型的数据值。9. 一种用于在单个数据结构中为一个或多个租户存储多个表的计算机实现的方法,包括定义具有主键列、组织id列和多个数据列的数据结构;为第一租户定义第一表,所述第一表具有第一数据字段,所述第一数据字段具有第一数据类型,且所述第一租户具有第一租户id;将第一表id分配给所述第一表;为所述第一租户定义第二表,所述第二表具有第二数据字段,所述第二数据字段具有不同于所述第一数据类型的第二数据类型;将第二表id分配给所述第二表;其中当为所述第一表创建记录时,对所创建的每一记录a) 将所述第一数据字段的值存储到所述数据结构中的单个数据列;b) 将所述第一租户id存储到所述组织id列;并且 C)将所述第一表id存储到所述主键列;以及 其中当为第二表创建记录时,对所创建的每一记录a) 将所述第二数据字段的值存储到所述单个数据列;b) 将所述第一租户id存储到所述组织id列;并且C)将所述第二表id存储到所述主键列;其中所述第一租户的所述第一和第二表被存储到所述数据结构中,且其中所 述单个数据列包括具有所述第一和第二数据类型的数据值。10. 如权利要求9所述的方法,其特征在于,还包括为第二租户定义第三表,所述第三表具有第三数据字段,所述第三数据字段 具有第三数据类型,且所述第二租户具有第二租户id;以及 将第三表id分配给所述第三表;其中当为所述第三表创建记录时,对所创建的每一记录将所述第三数据字段的值存储到所述数据结构中的所述单个数据列中; 将所述第二租户id存储到所述组织id列中;以及 将所述第三表id存储到所述主键列中;其中所述第一、第二和第三表存储在所述数据结构中,且其中所述单个数据 列包括具有所述第一和第二数据类型和所述第三数据类型的数据值。11. 如权利要求9所述的方法,其特征在于,所述第一和第二表id是不同的。12. 如权利要求IO所述的方法,其特征在于,所述第一和第二表id是不同的, 且所述第三表id与所述第一和第二表...
【专利技术属性】
技术研发人员:C韦斯曼,S翁,
申请(专利权)人:易享信息技术上海有限公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。