0
我發現這個教程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;
您的幫助將不勝感激。
您可能想要提供該鏈接的概述。這有點長,大多數人不會在回答你的問題之前閱讀它。 – 2011-12-29 22:58:30
您是否在尋找完全在數據庫中編碼的解決方案?另外,您參考的教程假定已知深度,結果集中的列數取決於此深度。如果您的深度未知,您可能只需返回雙列父/子ID,並讓消費代碼處理動態深度。如果你能澄清你在找什麼,我可能會幫助更多。 – 2011-12-29 23:02:53