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

PHP/MySQL:recupera un singolo percorso nel modello Adjacency List

No, non in MySQL almeno. Questa è una delle maggiori limitazioni del Modello elenco di adiacenza .

Potresti continuare a unirti da solo un numero limitato di volte, ma è brutto, imbarazzante e non copre un reparto illimitato. Puoi anche scaricare tutti i dati nella tua applicazione, creare un albero e trovare il percorso nell'applicazione.

Alcuni DBMS, come SQL Server 2005, Postgres 8.4 e Oracle 11g, supportano query ricorsive utilizzando espressioni di tabelle comuni con il WITH parola chiave. Questa funzione consente di scrivere facilmente query come questa, ma sfortunatamente MySQL non supporta ancora le query ricorsive.

Potresti essere interessato a consultare il seguente articolo che descrive un modello alternativo (il modello di set nidificato ), che rende più facili (possibili) le operazioni ricorsive in MySQL:

Inoltre, suggerisco anche di dare un'occhiata alla seguente presentazione di @Bill Karwin , un collaboratore regolare di Stack Overflow:

Il modello di tabella di chiusura descritto nella presentazione è un'alternativa molto valida al set nidificato. Descrive questo modello in modo più dettagliato nel suo SQL Antipatterns libro (estratto dal capitolo su questo argomento ).