2012-01-11 105 views
1

虽然这个问题很喜欢PostgreSQL,但它仍然是一个常见的数据库问题。分散数据库结构

我一直对模式这个词感到好奇,因为它涉及到数据库。最近,我们转而使用PostgreSQL,其中该术语对底层数据库结构具有实际意义。

在PostgreSQL-土地上,分散的结构如下:

DB Server (`some-server.com:5432`) 
    >> Database (`fizz`) 
     >> Schema (`buzz`) 
      >> Table (`foo`) 

因此,FQDN用于表[foo]fizz.buzz.foo。我知道“数据库”是表的逻辑分组。例如,一个组织可能拥有一个持有所有POJO/VO的“域”数据库,一个存储所有销售相关信息的“订单”数据库,以及一个将所有日志消息发送供日后分析的“日志记录”数据库,等等。

在数据库和它的表之间引入这个“schema”构造让我感到非常困惑,而PostgreSQL文档对于像我这样的新手来说有点过于霸道(并且缺乏很好的例子)理解。

我想知道是否有人能够给我一个外行的描述,不仅是这个“模式”构造是在PostgreSQL的范围内(以及它如何将数据库与表相关联),但是我想知道这对于什么意思数据库结构一般。

在此先感谢!

回答

1

将模式看作命名空间。我们可以使用它们对表格进行逻辑分组(例如People模式)。另外,我们可以为该模式分配安全性,以便我们允许某些人查看Customer模式,而不是Employee模式。这使我们能够在对象级别之上但低于数据库级别的情况下拥有安全控制粒度。

安全性可能是使用模式的最重要原因,但我也看到它们也用于逻辑分组。这取决于你需要他们的东西。

+0

谢谢Eric!伟大的回应! – IAmYourFaja 2012-01-11 16:57:47