2012-11-22 16 views
3

在網絡上閱讀關於PostgreSQL數組作爲表格列的類型時,我發現開發者之間的一般反應或觀點是:「不要使用數組,更好地使用另一個表,因爲它的尺度更好」。對於表列使用數組類型的任何情況都非常合適?

......我明白,那就是我基本上總是做的事情。

我從來沒有發現任何開發人員可以同意數組最合適的情況。有沒有什麼情況下使用數組真的值得嗎?

回答

3

您可以在其內部表中找到Postgresql陣列的示例(即pg_classpg_constraint)。

陣列將是適當的,如果:

  1. 你的數據庫驅動程序/連接/應用程序管理他們正確(不是所有的人都這樣做)。

  2. 您不需要過濾/查詢數組中的數據(您需要數組中的所有數據或根本不需要它)。

所以,一個很好的例子 - pg_constraint.conkey

  1. Postgres不能正確處理其陣列:)

  2. 它需要所有的列進行檢查(或不需要他們在所有如果沒有檢查應用)

UPD:而在「適當」使用的所有案件我可以想到,它們總是很小的0-10個元素數組。

+0

當您出於性能原因(無論是物化視圖還是主數據)故意進行非規範化時,數組也非常有用。不過,它們大多對查詢有用,而非數據存儲。 –

相關問題