Структура таблицы для меню в MySQL
Мне нужны советы для структуры таблицы.
Мне нужно создавать меню динамически.
Там будет более 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 - ссылка на заголовок пункта родительского меню - заголовок меню (любые другие необходимые данные)
таким образом, вы можете иметь неограниченное количество уровней... конечно, это не единственный способ...