sql >> Base de Datos >  >> RDS >> Mysql

Genera migas de pan de categorías almacenadas en MySQL

Me gusta usar Ruta materializada ya que esencialmente contiene su rastro de migas de pan y facilita hacer cosas como seleccionar todos los descendientes de un nodo sin usar consultas recursivas.

Modelo de ruta materializada

La idea con el modelo de ruta materializada es vincular cada nodo en la jerarquía con su posición en el árbol. Esto se hace con una lista concatenada de todos los ancestros de los nodos. Esta lista generalmente se almacena en una cadena delimitada. Tenga en cuenta el campo "Linage" a continuación. 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

Atravesar la mesa

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;

Listado

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