在postgres中使用数据库模式的优缺点是什么?

时间:2014-09-01 08:17:57

标签: postgresql

我正在开发的应用程序就像flikr,但有团队概念。每个组由多个用户组成,用户只能在其组内执行上传,共享,评论等活动。

我正在考虑为group-name命名空间下的有组织数据创建每个模式的模式,以便轻松管理它。有效。

Will it have any adverse effect on database backup plans ?

Is there any practical limits on number of schemas per database ?

1 个答案:

答案 0 :(得分:1)

将相同结构的数据拆分为模式时,您需要预测到您不再需要将它们作为全局实体进行查询这一事实。因为它在同一模式的不同表中具有繁琐和反SQL的作用。

例如,假设您有100个用户组,在100个名为group1..group100的模式中,每个模式都有一个photo表。

要获取系统中的照片总数,您需要执行以下操作:

select sum(n) FROM
(
select count(*) as n from group1.photos
UNION
select count(*) as n from group2.photos
UNION
select count(*) as n from group3.photos
...
UNION
select count(*) as n from group100.photos
)

只要添加或删除组,也需要重建此类查询或视图。

这既不容易也不高效,它是程序员的噩梦。