sql >> Database >  >> RDS >> Mysql

Genereer broodkruimels van categorieën die zijn opgeslagen in MySQL

Ik gebruik graag het Materialized Path methode, omdat het in wezen je broodkruimelspoor bevat en het gemakkelijk maakt om dingen te doen zoals alle nakomelingen van een knooppunt selecteren zonder recursieve zoekopdrachten te gebruiken.

Gematerialiseerd padmodel

Het idee van het gematerialiseerde padmodel is om elk knooppunt in de hiërarchie te koppelen aan zijn positie in de boom. Dit wordt gedaan met een aaneengeschakelde lijst van alle voorouders van de knooppunten. Deze lijst wordt meestal opgeslagen in een reeks met scheidingstekens. Let op het veld "Linage" hieronder. 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

De tafel oversteken

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;

Vermelding

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


  1. Totale hoeveelheid apparatuur berekenen voor een datumbereik

  2. Hoe maak je een alleen-lezen MySQL-gebruiker aan?

  3. Database + Windows-authenticatie + gebruikersnaam/wachtwoord?

  4. vergelijk twee reeksen getallen en verwijder duplicaten in php