2009-12-07 5 views
1

J'ai besoin de conseils pour une structure de table.Structure de table pour les menus dans mySQL

J'ai besoin de créer des menus dynamiquement.

Il y aura plus de 3 menus.

Certains menus auront des structures à plusieurs niveaux.

Quelle est la meilleure façon de structurer les tables de menus?

  1. Tous les menus sont dans une table
  2. Chaque table doit avoir une table
  3. Toute autre ??

S'il vous plaît donnez-moi votre expérience ou des pratiques communes pour les menus générés dynamiquement s'il vous plaît.

Répondre

9

en supposant que votre arborescence du menu est pas très grande, la liste de contiguïté soi-disant serait l'option la plus simple

id 
parent_id 
title 
other fields 

pour les menus de niveau supérieur parent_id = 0

voir Managing Hierarchical Data in MySQL pour poursuivre la discussion et d'autres options

+0

+1 pour lien vers grand article – Rowan

1

Vous pouvez utiliser une structure comme celle-ci:

Nom de la table

: Menu id - clé primaire menu_id - référence à l'élément de menu parent titre - titre du menu (toutes les autres données dont vous avez besoin)

cette façon, vous pouvez avoir des niveaux illimités ... cela est bien sûr pas la seule façon ...

1

L'utilisation parent_id devrait être suffisant pour la plupart des structures, si vous êtes coincé sur la performance (en ce qui concerne récursivité profonde), vous devriez également rechercher Modified Preorder Tree Traversal.

Questions connexes