2010-08-09 4 views
0

Je voudrais stocker un peu juste des données de texte avec la structure suivante:Stratégies RDBMS pour stocker des listes hiérarchiques? interroger/les sortir?

1. Overall Text A 
    1.1 Subsection Text 
     1.1.1 Clarification A 
     1.1.2 Clarification B 
    1.2 Another Subsection 
     1.2.1 Don't forget A 
     1.2.2 Don't forget B 
     1.2.3 or C! 
2. Overall Text B 
    2.1 getting the idea yet? 

niveaux de section se situerait entre 1 (plat) à 4, mais il n'y a pas maximum absolu. Chaque élément correspondrait à au moins un paragraphe de texte. Et il est important de préserver le schéma de numérotation. J'utilise MySQL et PHP pour le site, et cela concerne une section que j'aimerais ajouter. Comment mieux stocker ces données et relations dans un SGBDR, et comment les sortir et les afficher logiquement avec PHP?

Répondre

1

Son simple de créer une structure de base de données qui représente une hiérarchie:

CREATE TABLE nodes (
    node_id int NOT NULL, 
    parent_node_id int, 
    node_data varchar(100), 
    PRIMARY KEY node_id); 

Mais le maintien du système de numérotation est un peu plus complexe - mais CSS can do this for you.

Une approche alternative à la gestion des données hiérarchique qui est beaucoup plus flexible est décrit here.

Vous pouvez également trouver phplm utile.

1

Un ensemble imbriqué vous donnera l'avantage de stocker des données hiérarchiques de manière efficace. Cependant, cela peut être un peu pénible de travailler avec. La plupart du temps, et avec des structures simples, il se comporte bien et efficace bien!

exemple MySQL: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

Je l'ai utilisé cette méthode moi-même dans quelques projets, et à part quelques maux de tête sur pathfinding, je ne se plaint. :)

Questions connexes