0

我们最近在系统中添加了 Geodjango 和 PostGIS。我看到 PostGIS 将自身安装在public架构中。现在,我们使用 PostgreSQL 模式进行客户端租赁,例如客户端 A 将有一个模式tenant_A,因此我们通常手动设置搜索路径:

SET search_path TO tenant_A;

但由于 PostGIS 存在于公共模式中,我现在必须这样做:

SET search_path TO tenant_A, public;

geometry_columns简单地将 PostGIS 表(甚至只是表)移动到单个客户端模式中是否有意义?这样做的好处是 1) 客户的 GIS 数据将具有更大程度的分离,以及 2) 特定于租户的维护(备份、迁移等)会更容易。

4

1 回答 1

1

这几乎没有意义,因为所有客户端的 PostGIS 对象都是相同的。如果每个客户端都安装一个单独的实例,你会浪费很多磁盘空间,也会削弱缓存效率。

如果其他对象存在于某些客户不感兴趣的公共模式中,则可以选择将 PostGIS 安装到专用模式,例如postgis并将其包含在其中search_path

如果您真的想严格分离客户端,则必须为每个客户端创建单独的数据库甚至是数据库集群。

于 2013-08-22T17:30:30.033 回答