我发现这个教程http://sqllessons.com/categories.html并且我想使用所描述的方法,因为它比递归调用更好但是我有两个问题:
我如何知道最深层次?在某些页面中,我可能有2个而在另一个页面中我可能有20个。我错过了某些内容,或者只有在您知道运行前的最深级别之后才能使用此方法!
我有多语言数据库设计,如何更改查询以使用下面的表格设计:
CREATE TABLE `categories` (
`id` int(11) NOT NULL,
`position` int(11) DEFAULT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `parent_id_fk` (`parent_id`),
CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `categories` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `categories_locale` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`slug` varchar(100) NOT NULL DEFAULT '',
`name` varchar(40) NOT NULL DEFAULT '',
`category_id` int(11) NOT NULL,
`locale_id` smallint(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
非常感谢您的帮助。