Rails / Mysql / SQLite - Какая лучшая идея для построения 2- или 3-уровневого меню - PullRequest
0 голосов
/ 24 сентября 2011

Я думаю о лучшем способе, как создать 2–3-уровневое меню. Моя первая идея - все хранить в одной таблице базы данных со следующей структурой:

- id
- item
- level

Если я создаю пункт меню первого уровня, то level будет 0. Если я создам пункт меню второго уровня (например, Contact - phone), значит, phone это второй пункт меню, а значение level будет идентификатором контакта. Но теперь - я не знаю, как распечатать его из базы данных - в первом цикле я напечатаю первый уровень пунктов меню (с уровнем = 0), а затем мне нужно напечатать второй пункт меню (с уровнем = ID_of_first_menu_item ) - существует какой-нибудь изящный способ, как одновременно печатать элементы первого и второго уровня (я построю это в Rails)?

И второй способ - каждый уровень пунктов меню хранится в отдельной таблице - но я имею в виду, что это не очень хорошая идея ...

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 24 сентября 2011

взгляните на https://github.com/collectiveidea/awesome_nested_set, который в основном является деревом. идеально подходит для вложенной навигации

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