PostgreSQL中的模式概念


8

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

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

一个例子的解释会很好。

Answers:


13

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

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


3
模式可以做的很酷的事情之一就是替换其他项目中的默认对象。例如,我们在单独的模式中使用Wiki,并在视图中使用Wikimedia与我们的应用程序集成。对于Wikimedia代码,它只是架构中的常规旧Wikimedia,但实际上,用户和组来自我们的应用程序,并且覆盖了Wikimedia希望看到的内容。这样,用户/组信息不会存储两次,一次存储在我们的应用程序中,一次存储在Wikimedia中,而不会存储在我们的应用程序中。
Scott Marlowe

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.