Есть следующая головоломка:
Находясь во вложенной категории необходимо выбрать все элементы из нее и всех вложенных в нее категорий, и если они тоже имеют подкатегории из них тоже, т.е. все ветви.
Проблема в том что все что я не выдумывал даже в теории это тяжелые запросы а это главный основной модуль.
Вот таблицы:
CREATE TABLE IF NOT EXISTS `category` (
`category_id` int(10) unsigned NOT NULL auto_increment,
`category_pid` int(10) unsigned default NULL,
`category_name` varchar(250) NOT NULL default ''
PRIMARY KEY (`category_id`),
KEY `category_pid` (`category_pid`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS `obj` (
`obj_id` int(10) unsigned NOT NULL auto_increment,
`obj_category_id` int(9) NOT NULL,
`obj_name` varchar(40) NOT NULL,
`obj_text` text NOT NULL
PRIMARY KEY (`obj_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
В первой есть категории и их вложенности.
Во второй элементы которые по obj_category_id принадлежат категории.
Как бы вы посоветовали поступить?
Можно попробовать рекурсивно выводить все что вложено и вложено во вложенное но это будет очень тяжело.
Хотя кэш может помочь, но думаю должен быть способ попроще.