1.一种支持多租户共享数据存储的数据表字段扩展方法,其特征在于,其包括以下步骤:步骤1:构建租户的基本表、扩展列元数据表、扩展表和扩展表元数据表;
根据初始业务属性构建包含扩展列的基本表和扩展列元数据表,根据基本表构建对应的扩展表和扩展表元数据表;
步骤2:获取租户数据表字段扩展需求;
当租户提出数据表字段扩展的需求时,管理员审核该数据表字段扩展需求,通过审核的租户数据表字段扩展需求则进入持久化阶段;
步骤3:持久化租户共享数据存储的数据表字段扩展;
对于通过审核的租户数据表字段扩展需求,检测租户在基本表中的扩展列的剩余数量,若扩展列剩余数量大于0,此次扩展需求使用基本表中的扩展列实现;若扩展列剩余数量等于0,此次扩展需求使用扩展表实现;持久化租户数据表字段扩展具体流程如下所示:所述扩展列和扩展表都用于满足租户的数据表字段扩展需求,当租户提出数据表字段扩展需求时,首先检测租户在基本表中的扩展列的剩余数量Rt,如下所示:Rt=T(Bt,Tid);
式中:Rt表示租户在基本表中还未使用的扩展列数量;T表示扩展列剩余数量的检测函数;Bt表示基本表,Tid表示租户的ID号;
检测函数T输入为基本表表名和租户ID号,表示通过租户ID号查询租户在基本表中的扩展列剩余数量操作,输出为该租户在该基本表中剩余扩展列的数量;
当Rt>0,表示租户在基本表中的扩展列剩余数量大于0,此时使用扩展列来实现租户的扩展需求,将租户扩展数据的元数据存入扩展列元数据表,完成租户的数据扩展;
当Rt=0,表示租户在基本表中的扩展列剩余数量等于0,此时使用扩展表来满足租户的数据表字段需求,先在扩展表中添加一条记录,存储租户扩展的字段名称,再将租户扩展数据的元数据存入扩展表元数据表,完成租户的数据扩展;
步骤4:根据基本表、扩展列元数据表、扩展表和扩展表元数据表确定租户的数据信息;
确定租户数据信息,首先在扩展表中查询该租户的数据记录,若扩展表中没有该租户的数据记录,则该租户的数据信息只由基本表和扩展列元数据表中的记录构成,通过将基本表和扩展列元数据表进行内连接查询即能获取租户数据信息;若扩展表中有该租户的数据记录,则该租户的数据信息由基本表、扩展列元数据表、扩展表和扩展表元数据表中的记录构成,通过将上述四表进行内连接查询,获取租户的所有数据信息。
2.根据权利要求1所述的支持多租户共享数据存储的数据表字段扩展方法,其特征在于,所述多租户共享数据存储指的是所有租户共用一个数据库,共用数据表,所有租户的信息存储在同一张表中。
3.根据权利要求1所述的支持多租户共享数据存储的数据表字段扩展方法,其特征在于,所述步骤1中的基本表具体为:所述基本表与常规基本表不同,除了根据初始业务属性构建的基础信息字段,还包括一定数量的扩展列字段;所述基础信息字段用于直接存储租户的初始业务属性数据;所述扩展列字段用于实现租户的数据表字段扩展需求,扩展列的数量由软件开发人员在软件设计时依据软件产品特性进行制定。
4.根据权利要求1所述的支持多租户共享数据存储的数据表字段扩展方法,其特征在于,所述步骤1中的扩展表具体为:所述扩展表为基本表所关联的一个附属表,用于在基本表中有限数量的扩展列用完后,满足租户无限扩展的需求;扩展表用于存储至少包括以下字段:租户ID字段、扩展字段名称字段、扩展字段值字段。
5.根据权利要求1所述的支持多租户共享数据存储的数据表字段扩展方法,其特征在于,所述步骤1中的扩展列元数据表和扩展表元数据表具体为:所述扩展列元数据表和扩展表元数据表分别为基本表和扩展表所关联的附属表,扩展列元数据表用于存储使用基本表中扩展列的元数据;扩展表元数据表用于存储扩展表中扩展属性的元数据。
6.根据权利要求1所述的支持多租户共享数据存储的数据表字段扩展方法,其特征在于,所述步骤4中的确定租户的数据信息流程具体为:确定租户数据信息,首先在扩展表中查询该租户的数据记录,若扩展表中没有该租户的数据记录,则该租户的数据信息只由基本表和扩展列元数据表中的记录构成,通过将基本表和扩展列元数据表进行内连接查询即能获取租户数据信息;此时租户的第一所有数据信息It1如下所示:It1=G1(Bt,Mcm,Tid);
式中:It1表示租户的第一所有数据信息;G1表示依据租户ID在基本表与扩展列元数据表内连接结果中获取租户数据信息的函数;Bt表示基本表;Mcm表示扩展列元数据表;Tid表示租户ID号;
G1函数输入为基本表名称、扩展列元数据表名称和租户ID号,表示操作为将基本表和扩展列元数据表进行内连接查询,输出为租户的所有数据信息;
若扩展表中有该租户的数据记录,则该租户的数据信息由基本表、扩展列元数据表、扩展表和扩展表元数据表中的记录构成,通过将上述四表进行内连接查询,获取租户的所有数据信息;此时租户的第二所有数据信息It2如下所示:It2=G2(Bt,Mcm,Et,Mtm,Tid);
式中:It2表示租户的第二所有数据信息;G2表示依据租户ID在基本表、扩展列元数据表、扩展表和扩展表元数据表内连接结果中获取租户的所有数据信息的函数;Bt表示基本表;Mcm表示扩展列元数据表;Et表示扩展表;Mtm表示扩展表元数据表;Tid表示租户ID号;
G2函数输入为基本表名称、扩展列元数据表名称、扩展表表名、扩展表元数据表表名和租户ID号,表示操作为将基本表、扩展列元数据表、扩展表和扩展表元数据表进行内连接查询操作,输出为租户的所有数据信息。