2012-01-11 141 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