PostgreSQL 中的 Schema 概念

cod*_*ool 8 schema postgresql database-design

我无法理解 PostgreSQL 中模式的概念和用法。我不知道它如何影响我的数据库设计。我为什么要使用它?

如果我决定现在不考虑它们,以后再担心它们,这会影响我将来吗?

用一个例子解释会很好。

Jac*_*las 13

postgres 中的模式主要用于命名空间,有时用于安全。

命名空间是因为两个对象可以在不同的模式中具有相同的名称,然后通过schema.object符号引用- 特别有用search_path(许多 contrib 模块都这样做,例如xml2)。安全因为您现在可以做到grant ... on all tables in schema

  • 您可以使用模式做的一件非常酷的事情是替换其他项目中的默认对象。例如,我们在单独的模式和视图中使用维基,以允许维基媒体与我们的应用程序在工作中集成。对于维基媒体代码,它只是模式中的常规旧维基媒体,但实际上用户和组来自我们的应用程序,并覆盖了维基媒体期望看到的内容。这样用户/组信息不会存储两次,一次在我们的应用程序中,一次在维基媒体中,而只是在我们的应用程序中。 (3认同)