Mi piace usare il Percorso materializzato metodo, poiché contiene essenzialmente il tuo percorso breadcrumb e semplifica operazioni come selezionare tutti i discendenti di un nodo senza utilizzare query ricorsive.
Modello di percorso materializzato
L'idea con il modello di percorso materializzato è di collegare ogni nodo nella gerarchia con la sua posizione nell'albero. Questo viene fatto con un elenco concatenato di tutti gli antenati dei nodi. Questo elenco è solitamente archiviato in una stringa delimitata. Nota il campo "Linage" di seguito.
CAT_ID NAME CAT_PARENT Lineage
1 Home .
2 product 1 .1
3 CD’s 2 .1.2
4 LP’s 2 .1.2
5 Artists 1 .1
6 Genre 5 .1. 5
7 R&B 6 .1. 5.6
8 Rock 6 .1. 5.6
9 About Us 1 .1
Attraversare il tavolo
Select lpad('-',length(t1.lineage))||t1.name listing
From category t1, category t2
Where t1.lineage like t2.lineage ||'%'
And t2.name = 'Home';
Order by t1.lineage;
Elenco
Home
-product
–CD’s
–LP’s
-Artists
–Genre
—R&B
—Rock
-About Us