Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Generieren Sie Breadcrumbs von Kategorien, die in MySQL gespeichert sind

Ich verwende gerne den Materialized Path -Methode, da sie im Wesentlichen Ihren Breadcrumb-Pfad enthält und es einfach macht, Dinge wie die Auswahl aller Nachkommen eines Knotens ohne rekursive Abfragen zu tun.

Modell des materialisierten Pfads

Die Idee des materialisierten Pfadmodells besteht darin, jeden Knoten in der Hierarchie mit seiner Position im Baum zu verknüpfen. Dies erfolgt mit einer verketteten Liste aller Vorfahren der Knoten. Diese Liste wird normalerweise in einer Zeichenfolge mit Trennzeichen gespeichert. Beachten Sie das Feld „Abstammung“ unten. 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

Durchqueren des Tisches

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;

Eintrag

Home
-product
–CD’s
–LP’s
-Artists
–Genre
—R&B
—Rock
-About Us