catégories content sous-catégories à l'infini

Eléphant du PHP | 135 Messages

25 avr. 2006, 11:20

Bonjour :)

je dirai que tout est dans le titre, mais je vais détailler un peu plus.

admettons le domaine "Informatique",

dans ce domaine ,

il y a plusieurs sujets "Programmation", "Sécurité", etc ...

dans ces sujets, il y a plusieurs catégories

par exemple pour la programmation, on a "PHP", "C++" et ainsi de suite.

sachant qu'on peut avoir un nombre indéfini de sous catégories :)

Code : Tout sélectionner

Informatique -Programmation --PHP ---Fonctions ---scripts ---méthodes --C++ ---Fonctions ---Programmes -Securité --Exploits ---Critiques ---Moyens . . .
ainsi de suite.

donc pour en arriver à mon problème :) (oui oui, ce n'était pas juste une histoire)

je ne vois pas comment stocker tout cela dans ma base de donnée.

merci pour votre aide :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 avr. 2006, 11:24

La manière la plus courante : une table qui pointe sur elle-même

Code : Tout sélectionner

Categories ------------ id_cat nom_cat id_cat_sup
Pour ton exemple :

Code : Tout sélectionner

1 Informatique 0 # 0 indique qu'il n'y a pas de catégorie parente 2 Programmation 1 3 PHP 2 4 Fonctions 3 5 scripts 3 6 méthodes 3
Une autre : représentation intervallaire des arbres
http://sqlpro.developpez.com/cours/arborescence/
A un endroit de l'article sont expliqués les avantages de cette technique, et dans quels cas il vaudrait mieux l'utiliser

Edit : comme je suis sympa je vais les recopier ici, pour les flemmards
C'est pourquoi ce modèle (NDT: le modèle 1, par auto-jointure) est a proscire lorsque :

* l'arbre est profond (plus de 5 niveaux)
* l'arbre est large (plus de 100 éléments sur un même niveau)
* l'arbre contient beaucoup de valeurs (à partir de 200 à 300 éléments)
* la majorité des requêtes sont des requêtes d'interrogation - SELECT (au moins 50% des requêtes)

Et personnellement je vous conseille de passer au modèle par intervalle dès que l'un de ces 4 critères est vrai !

Eléphant du PHP | 135 Messages

25 avr. 2006, 11:57

merci pour ta réponse ouckileou :)

j'ai fait une recherche sur "le modèle par intervalle" :)

8)