Структура таблицы для меню в MySQL - PullRequest
2 голосов
/ 07 декабря 2009

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

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

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

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

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

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

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

Ответы [ 4 ]

10 голосов
/ 07 декабря 2009

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

id   
parent_id
title
other fields

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

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

1 голос
/ 18 апреля 2013

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

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

1 голос
/ 07 декабря 2009

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

1 голос
/ 07 декабря 2009

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

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

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

...