MySQL - Recursing une structure en arbre
J'ai une table de base de données qui relient des lieux ensemble, un emplacement peut être dans un lieu, qui peut être à l'intérieur d'un autre emplacement.
location (<id>, ....)
location_parent (<location_id>, <parent_id>)
Voici le MySQL/PHP pour aller vers le bas pour une profondeur d'un:
$sql = "SELECT id FROM se_locations_services WHERE parent_locationid IN
( SELECT location_id FROM se_locations_parent WHERE parent_id = '$locationid' )";
Comment puis-je, donné un parent emplacement, obtient tous ses descendants endroits, peu importe la profondeur, juste à l'aide de MySQL?
OriginalL'auteur Extrakun | 2010-03-04
Vous devez vous connecter pour publier un commentaire.
Il y a un bonne à la recherche de l'article plus à mysql.com décrivant les différentes méthodes de gestion des données hiérarchiques. Je pense qu'il fournit une solution complète à votre question, et montre des moins simple, mais plus rapide des approches (par exemple, niché Ensembles).
l'article n'est plus disponible.
la machine à remonter le temps, toujours. Mis à jour.
Déplacement sur deux ans, il y a un non-wayback usiné version de cet article à l'adresse mikehillyer.com/articles/managing-hierarchical-data-in-mysql. (En gros, il est déplacé à l'auteur du blog)
C'est pourquoi les réponses devraient toujours contenir tous les détails de la réponse avec la référence de la source, de ne pas la référence étant la réponse
OriginalL'auteur Pekka 웃
MySQL
manque de prise en charge native de l'hiérarchique des fonctions, de sorte que vous aurez à les imiter à l'aide des variables de session pour garder la récursivité de l'état.Voir cet article sur la façon de mettre en œuvre la fonction:
OriginalL'auteur Quassnoi
Une bien meilleure façon de gérer ce type de données est d'utiliser de la modification de la Précommande Arbre Transversal technique:
http://articles.sitepoint.com/article/hierarchical-data-database/2
hth
w://
OriginalL'auteur
Depuis mysql états peuvent retourner seule table de données structurées, comment imaginez-vous le retour de l'arborescence?
Il est possible de faire une sélection avec [parent_id, child_id] de la table, mais il nécessite de la table temporaire et je l'ai vu faire sur DB2, pas sur MySQL.
Vérifier cet article pour la mise en œuvre sur les structures arborescentes stockées dans MySQL: http://articles.sitepoint.com/article/hierarchical-data-database/
OriginalL'auteur Eimantas