Bonjour,
je réalise un site internet et voudrais récupérer les informations de mon menu en base de données (menu prévu pour avoir de 1 à N niveau*).
Toutefois, j'ai deux idées en tete :
Première idée :
1 table rubrique (id_rubrique, intitule)
1 table menuNiveau0 (id_menuNiv0, id_rubriqueNiv0)
1 table menuNiveau1(id_menuNiv1, id_rubriqueNiv0, id_rubriqueNiv1)
ainsi de suite ...
Dans cette premiere idee, je recupere en premier lieu l'id_rubriqueNiv0 dans la table menuNiveau0, qui constitue la rubrique père (ex : "conception" dans ce forum serait une rubrique père dans mon cas).
Ensuite, je requette dans la table menuNiveau1 pour savoir si l'identifiant père est présent. Si tel est le cas, alors la rubrique père possède un fils dont je recupère l'identifiant (id_rubriqueNiv1).
Petit à petit mon menu se construit avec sa filiation.
Deuxième idée :
1 table rubrique (id_rubrique, intitule)
1 table filiation (id_filiation, id_rubrique_pere, id_rubrique_fils)
Dans cette deuxième idée, je requete sur la table filiation :
- je recupere les id_rubrique des resultats qui sont orphelins (pas de pere), ce qui me donne les id_rubriques peres.
- avec ces peres (niveau 0) je requette pour obtenir leur fils direct (niveau 1) puis les fils des fils (niveau 2) ** ...
Ainsi de suite je construit mon menu.
Bilan/question :
La première idée semble plus simple que la deuxième, mais je me demandais si la deuxième idée n'était pas un début de bonne idée (à améliorer).
De ce fait, je m'en remets à vous pour savoir, si je dois plutôt utiliser la première idée, la deuxième (en l'état ou différemment) ou bien une autre ?
Merci d'avance pour vos réponses.
* : le niveau étant l'arborescence, rubrique de niveau 1 -> rubrique de niveau 2 (sous rubrique) ...
** : les fils peuvent devenir père à leur tour
Partager