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

PHP/MySQL:recuperar una ruta única en el modelo de lista de adyacencia

No, no en MySQL al menos. Esa es una de las mayores limitaciones del Modelo de lista de adyacencia .

Podría continuar uniéndose a sí mismo una cantidad finita de veces, pero eso es feo, incómodo y no cubre un departamento ilimitado. También puede descargar todos los datos de su aplicación, crear un árbol y encontrar la ruta en la aplicación.

Algunos DBMS, como SQL Server 2005, Postgres 8.4 y Oracle 11g, admiten consultas recursivas mediante expresiones de tabla comunes con el WITH palabra clave. Esta función permite que consultas como esta se escriban con facilidad, pero desafortunadamente MySQL aún no admite consultas recursivas.

Es posible que le interese consultar el siguiente artículo que describe un modelo alternativo (el modelo de conjunto anidado ), lo que hace que las operaciones recursivas sean más fáciles (posibles) en MySQL:

Además, también sugiero consultar la siguiente presentación de @Bill Karwin , colaborador habitual en Stack Overflow:

El modelo de mesa de cierre descrito en la presentación es una alternativa muy válida al conjunto anidado. Describe este modelo con más detalle en su SQL Antipatterns libro (extracto del capítulo sobre este tema ).