Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP/MySQL :Récupérer un seul chemin dans le modèle de liste de contiguïté

Non, pas dans MySQL du moins. C'est l'une des plus grandes limitations du Modèle de liste d'adjacence .

Vous pouvez continuer à vous inscrire un nombre fini de fois, mais c'est moche, gênant et ne couvre pas un dept illimité. Vous pouvez également télécharger toutes les données de votre application, créer une arborescence et trouver le chemin dans l'application.

Certains SGBD, tels que SQL Server 2005, Postgres 8.4 et Oracle 11g, prennent en charge les requêtes récursives à l'aide de expressions de table communes avec le WITH mot-clé. Cette fonctionnalité permet d'écrire facilement des requêtes telles que celle-ci, mais malheureusement, MySQL ne prend pas encore en charge les requêtes récursives.

Vous pourriez être intéressé à consulter l'article suivant qui décrit un modèle alternatif (le modèle d'ensemble imbriqué ), ce qui facilite (possible) les opérations récursives dans MySQL :

De plus, je suggère également de consulter la présentation suivante de @Bill Karwin , un contributeur régulier sur Stack Overflow :

Le modèle de table de fermeture décrit dans la présentation est une alternative très valable à l'ensemble imbriqué. Il décrit ce modèle plus en détail dans son SQL Antipatterns livre (extrait du chapitre sur ce sujet ).