I sistemi di gestione di database relazionali basati su SQL sono solo parzialmente adatti a query gerarchiche o ricorsive. Altri sistemi, come ArangoDB, sono più indicati per questo scopo (a tal proposito è stata presentata un'ottima relazione al GOTO 2016 ). Tuttavia, è anche possibile creare query ricorsive in SQL utilizzando le Common Table Expressions (CTE) , consentendo, ad esempio, di interrogare le classiche tabelle padre/figlio per ottenere tutti gli antenati e i discendenti.
In PostgreSQL assomiglia a questo, per esempio:
0672c4761d202a35a9059fa137ace7c3
Se vuoi ottenere tutti i figli di un certo item_id, usa le espressioni di tabella comuni:
0672c4761d202a35a9059fa137ace7c3
Anche interrogare i genitori non è un problema:
0672c4761d202a35a9059fa137ace7c3