我正在开发的应用程序类似于 flikr,但具有群组概念。每个组由多个用户组成,用户只能在他们的组内进行上传、分享、评论等事件。
我正在考虑为每个组创建一个架构以在组名命名空间下组织数据,以便轻松高效地管理它。
Will it have any adverse effect on database backup plans ?
Is there any practical limits on number of schemas per database ?
最佳答案
将结构相同的数据拆分为模式时,您需要预料到这样一个事实,即您不需要再次将它们作为全局实体进行查询。因为它与将它们放在同一模式的不同表中一样麻烦和反 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
)
每当添加或删除组时,也需要重建这种查询或 View 。
这既不简单也不高效,这是程序员的噩梦。
关于postgresql - 在 postgres 中使用数据库模式的优点和缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25601571/