Структура таблицы для меню в MySQL

Мне нужны советы для структуры таблицы.

Мне нужно создавать меню динамически.

Там будет более 3 меню.

Некоторые из меню будут иметь многоуровневые структуры.

Каков наилучший способ структурирования таблиц меню?

  1. Все меню в одной таблице
  2. Каждая таблица должна иметь одну таблицу
  3. Любой другой??

Пожалуйста, дайте мне ваш опыт или общие практики для динамически генерируемых меню, пожалуйста.

4 ответа

Решение

При условии, что ваше дерево меню не очень большое, так называемый список смежности будет самым простым вариантом

id   
parent_id
title
other fields

для меню верхнего уровня parent_id = 0

см. Управление иерархическими данными в MySQL для дальнейшего обсуждения и других опций

Использование parent_id должно быть достаточно для большинства структур, однако, если вы застряли на производительности (в отношении глубокой рекурсии), вам также следует изучить Modified Preorder Tree Traversal.

http://www.codeproject.com/Tips/354696/Dynamically-populating-menu-items-from-the-databas

это будет полезно, динамически заполняя пункты меню из базы данных в ASP.NET

Вы можете использовать такую ​​структуру:

имя таблицы: идентификатор меню - первичный ключ menu_id - ссылка на заголовок пункта родительского меню - заголовок меню (любые другие необходимые данные)

таким образом, вы можете иметь неограниченное количество уровней... конечно, это не единственный способ...

Другие вопросы по тегам