sql >> Database teknologi >  >> RDS >> Mysql

Generer brødkrummer af kategorier gemt i MySQL

Jeg kan godt lide at bruge Materialized Path metode, da den i det væsentlige indeholder dit brødkrummespor og gør det nemt at gøre ting som at vælge alle efterkommere af en node uden at bruge rekursive forespørgsler.

Materialiseret stimodel

Ideen med Materialized path-modellen er at forbinde hver node i hierarkiet med dens position i træet. Dette gøres med en sammenkædet liste over alle nodernes forfædre. Denne liste er normalt gemt i en afgrænset streng. Bemærk feltet "Linage" nedenfor. 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

Gå gennem bordet

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;

Fortegnelse

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


  1. MySQL – Sådan genereres tilfældigt tal

  2. Hvordan PERIOD_ADD() virker i MariaDB

  3. 7 måder at tjekke din Oracle-version på

  4. Tilføjelse af dict-objekt til postgresql