Li ho usati per semplificare il lavoro con gli alberi (come i thread di commenti). È possibile memorizzare il percorso dalla radice dell'albero a un singolo nodo in un array, ogni numero nell'array è il numero di ramo per quel nodo. Quindi, puoi fare cose come questa:
SELECT id, content
FROM nodes
WHERE tree = X
ORDER BY path -- The array is here.
PostgreSQL confronterà gli array elemento per elemento in modo naturale, quindi ORDER BY path
scaricherà l'albero in un ordine di visualizzazione lineare ragionevole; quindi, controlli la lunghezza di path
per capire la profondità di un nodo e questo ti dà l'indentazione per ottenere il rendering corretto.
L'approccio di cui sopra ti porta dal database alla pagina sottoposta a rendering con un passaggio attraverso i dati.
PostgreSQL ha anche tipi geometrici , semplici tipi chiave/valore e supporta la costruzione di vari altri tipi compositi .
Di solito è meglio usare le tabelle di associazione tradizionali, ma non c'è niente di sbagliato nell'avere più strumenti nella tua cassetta degli attrezzi.