首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hstore和多租户

Hstore和多租户
EN

Stack Overflow用户
提问于 2015-01-04 21:58:07
回答 1查看 230关注 0票数 1

我正在扩充一个应用程序,用户可以在其中添加自定义字段并提交数据。我正在使用Postgresql,所以我认为Hstore将是解决这一问题的最佳解决方案。也是因为它允许查询用户可能引入的自定义数据。我的问题是,Hstore只能安装到一个模式中,而且我正在使用单元gem进行多租户操作。因此,每个用户在数据库中都有一个模式。

Hstore列中的数据是私有的,所以我不希望其他用户访问它。我怎么能做到这一点?我更喜欢将这些数据存储到同一个用户的模式中。还有别的解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-05 01:58:23

Craig告诉您在它自己的模式中安装hstore。这意味着要沿着这条路线做点什么。

代码语言:javascript
复制
create schema hs;
create extension hstore with schema hs;

这与存储hstore数据的方式和地点无关。

如果我有一个名为"mike“的个人模式,我将在"mike”模式中构建具有类似hstore数据类型的表。

代码语言:javascript
复制
create schema mike;
create table mike.test (
  some_column_name hs.hstore
);

通过将"hs“模式放在搜索路径中,可以避免使用”hs“模式名称(如”hs“.hstore中的名称)。如果您正在执行“正常”的客户机/服务器应用程序,您可能希望在数据库级别设置它。

代码语言:javascript
复制
alter database your_database_name set search_path TO mike, hs, public;

但是,在多租户体系结构(每个租户有一个模式)中,每个租户可能需要一个数据库角色,并且可能希望为每个角色设置搜索路径。(我不熟悉“公寓”创业板;我猜想它为每个租户创建了一个角色,每个租户创建了一个模式。)通过检查数据库架构验证这一点。)

代码语言:javascript
复制
alter role one_role_name set search_path to one_role_name, hs, public;

我还想验证模式上的合理权限。例如,在像您这样的多租户体系结构中,我想验证只有"mike“在"mike”模式中具有特权。

搜索路径中的第一个架构将成为新对象的默认架构。另一方面,该架构中的数据库对象可以在其他架构中隐藏同名的数据库对象。把它记在你的脑后。

最后,数千行是一个小型数据库。性能问题可能与数据库搜索路径无关。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27770808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档