SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 01.11.2015 13:38:11

saylar_06
Участник
Зарегистрирован: 01.09.2014
Сообщений: 13

Объединение нескольких таблиц в меню

   CREATE TABLE IF NOT EXISTS `prefix_categories` (
      `cat_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL,
      `slug` varchar(255) NOT NULL,
      `parent_id` int(11) unsigned NOT NULL DEFAULT '0',
      `num_sort` int(11) unsigned DEFAULT NULL,
      PRIMARY KEY (`cat_id`),
      UNIQUE KEY `slug` (`slug`),
      UNIQUE KEY `num_sort` (`num_sort`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
   
    CREATE TABLE IF NOT EXISTS `prefix_link` (
      `link_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL,
      `slug` varchar(255) NOT NULL,
      `parent_id` int(11) unsigned NOT NULL DEFAULT '0',
      `num_sort` int(11) unsigned DEFAULT NULL,
      PRIMARY KEY (`link_id`),
      UNIQUE KEY `slug` (`slug`,`num_sort`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
   
    CREATE TABLE IF NOT EXISTS `prefix_menu` (
      `menu_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `slug` varchar(255) NOT NULL,
      `name` varchar(255) NOT NULL,
      PRIMARY KEY (`menu_id`),
      UNIQUE KEY `slug` (`slug`,`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
   
    CREATE TABLE IF NOT EXISTS `prefix_pages` (
      `page_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL,
      `slug` varchar(255) NOT NULL,
      `parent_id` int(11) unsigned NOT NULL,
      `num_sort` int(11) unsigned DEFAULT NULL,
      PRIMARY KEY (`page_id`),
      UNIQUE KEY `slug` (`slug`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


Доброго времени суток! Выше привел созданную мной БД
Подскажите как реализовать меню на основе этих таблиц?

есть категории/страницы/ссылки разумеется поля у них тоже будут добавляться но четыре стандартных все же будут, хотелось бы не просто склеить их а вывести иерархию к примеру:

категория
  ссылка
    категория
  страница
ссылка
  категория
    страница
      ссылка
    страница

как реализовать задуманное? Для начала архитектуру БД и сам запрос, можно ли это сделать одним запросом? и какую нагрузку будет давать этот запрос?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson