Je les ai utilisés pour faciliter le travail avec les arbres (tels que les fils de commentaires). Vous pouvez stocker le chemin de la racine de l'arborescence à un seul nœud dans un tableau, chaque nombre dans le tableau est le numéro de branche pour ce nœud. Ensuite, vous pouvez faire des choses comme ceci :
SELECT id, content
FROM nodes
WHERE tree = X
ORDER BY path -- The array is here.
PostgreSQL comparera les tableaux élément par élément de manière naturelle, donc ORDER BY path
videra l'arbre dans un ordre d'affichage linéaire raisonnable ; ensuite, vous vérifiez la longueur de path
pour déterminer la profondeur d'un nœud et cela vous donne l'indentation pour obtenir le bon rendu.
L'approche ci-dessus vous permet de passer de la base de données à la page rendue en un seul passage dans les données.
PostgreSQL a également des types géométriques , simples types clé/valeur , et prend en charge la construction de divers autres types composites .
Il est généralement préférable d'utiliser des tables d'association traditionnelles, mais il n'y a rien de mal à avoir plus d'outils dans votre boîte à outils.