Description
场景:在SASS CMS管理系统中,每一个注册的用户都可以创建一个项目,在创建项目的同时会创建一个根据项目ID命名的schema,例如p987960_db;用户在项目中可以创建内容模型(也就相当于在可视化mysql工具中创建表),之后就会在后台转化成sql,在对应的schema中生成一张表;
现象:由于表的数量会随着用户创建的内容模型增多,对后期的表管理有很大的难度;所以打算根据不同的用户创建的项目,创建不同的schema来管理表(层级关系:用户>项目>内容模型);并将APIJSON自带的表,例如request,function放到公共的schema中;
问题:那么该如何根据用户当前使用的项目,在用户操作数据表的数据CURD的时候,使用正确的Schema呢?
@TommyLemon
2条答案
按热度按时间hiz5n14c1#
DemoSQLConfig 重写 getConfigSchema,用于返回 APIJSON 配置表所在 schema。
然后重写 getSchema 或 getSQLSchema,根据项目 id 返回对应的 schema。
也就是说,重写getConfigSchema返回配置表所在的schema,用来获取APIJSON在使用时所需要的配置信息;重写getSchema或者是getSQLSchema返回的schema是用来在APIJSON解析前端传的json生成sql语句的时候,自动添加到表名的前面,例如select * from p00000_schema.tb_home
kxkpmulp2#
ok,谢谢 @TommyLemon