MySQL utilise SQL qui est un language conçu pour les bases de données relationelles, et non pas pour les bases de données hierarchiques. On peut malgré tout s'en sortir pour faire des catégories et des sous-catégories, mais il est souhaitable de savoir un tout petit peu comment marchent les bases de données relationnelles.
Un "modèle de données" (une organisation, une architecture) possible serait d'avoir une table des catégories contenant, un identifiant de la catégorie, et un libellé décrivant la catégorie. On aurait en plus une table faisant le lien entre les enregistrements de l'annuaire et la table des catégories. Cette table aurait deux champs : l'identifiant de l'enregistrement de l'annuaire, et l'identifiant de la catégorie associée. Une autre solution serait d'inclure à la fin de chaque enregistrement de l'annuaire un champ contenant l'identifiant de la catégorie, ce qui éviterait la table des liens, mais ce qui aurait l'inconvénient d'avoir un champ vide dans le cas où certains enregistrements ne seraient pas rattachés à une catégorie.
Pour ajouter à ce modèle une table des sous-catégories, il existe plusieurs solutions. Par exemple on pourrait considérer que les catégories dont il est question précédemment, étaient en fait des sous-catégories. Puis, on regrouperait ces sous-catégories en catégories, en faisant un lien entre chaque sous-catégorie et la catégorie à laquelle elle appartient.
Bon courage !
Message édité par olivthill le 05-08-2007 à 19:29:17