Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP/MySQL:Recupere um único caminho no modelo Lista de Adjacências


Não, não no MySQL, pelo menos. Essa é uma das maiores limitações do Modelo de lista de adjacência .

Você pode continuar a auto-ingressar um número finito de vezes, mas isso é feio, estranho e não cobre departamentos ilimitados. Você também pode baixar todos os dados em seu aplicativo, construir uma árvore e encontrar o caminho no aplicativo.

Alguns SGBDs, como SQL Server 2005, Postgres 8.4 e Oracle 11g, suportam consultas recursivas usando expressões de tabela comuns com o WITH palavra-chave. Este recurso permite que consultas como essa sejam escritas com facilidade, mas infelizmente o MySQL ainda não suporta consultas recursivas.

Você pode estar interessado em verificar o seguinte artigo que descreve um modelo alternativo (o modelo de conjunto aninhado a> ), o que torna as operações recursivas mais fáceis (possíveis) no MySQL:

Além disso, também sugiro conferir a seguinte apresentação de @Bill Karwin , um colaborador regular do Stack Overflow:

O modelo de tabela de fechamento descrito na apresentação é uma alternativa muito válida ao conjunto aninhado. Ele descreve esse modelo com mais detalhes em seu SQL Antipatterns livro (trecho do capítulo sobre este tópico ).