tirrex, у каждой записи категории, даже с названием "охренительнодлиннаямлинкатегория", есть свой уникальный идентификатор id и идентификатор родителя, категории на уровень выше(как предложил PHP_Master parent_id), т.е. в данном случае у категории "podkategory" parent_id будет равен id "kategory", у "kategory" parent_id=id "razdel", а у "razdel" parent_id равен 0 либо NULL. Таким способом можно реализовать бесконечное вложенное количество подкатегорий и все это размещается в одной таблице. Так устроены разделы, подразделы и темы в большинстве(если не во всех) форумах, в т.ч. vBulletin, который расположен на nulled.ws
Если не сложно продемонстрируйте примерчик, как сделать все в одной таблице.Хотябы на 2 уровня вложения.
Вот у меня
таблицы
Основная категория
CREATE TABLE `cat` (
`id` int(9) NOT NULL auto_increment,
`cpu` varchar(125) NOT NULL,
`title` varchar(125) NOT NULL,
`razd_id` int(9) default NULL,
UNIQUE KEY `title` (`title`),
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;
INSERT INTO `cat` VALUES (1, 'knigi', '
Книги', 1);
В категории Автомобили книги есть много подкатегорий
CREATE TABLE `razdel` (
`razd_id` int(9) NOT NULL auto_increment,
`razd_cpu` varchar(25) NOT NULL,
`razd_title` varchar(25) NOT NULL,
`pod_id` int(9) NOT NULL,
KEY `razd_id` (`razd_id`)
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=30 ;
INSERT INTO `razdel` VALUES (1, 'avtomobili', 'Автомобили', 1);
INSERT INTO `razdel` VALUES (2, 'bestsellery', 'Бестселлеры', 1);
INSERT INTO `razdel` VALUES (3, 'delovaya_literatura', 'Деловая литература', 1);
Ну еще можно добавить подразел это уже 3 уровень
CREATE TABLE `podrazdel` (
`pod_id` int(9) NOT NULL auto_increment,
`pod_cpu` varchar(25) NOT NULL,
`pod_title` varchar(25) NOT NULL,
KEY `pod_id` (`pod_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;