【发布时间】:2011-04-04 13:48:22
【问题描述】:
我正在构建一个文件管理器,它允许用户在文件夹内(文件夹内)创建文件夹来存储他们的文件。我没有真正限制文件夹的深度,但我可能会将其设为 10 或类似的东西。
我怎样才能在下拉菜单中列出所有文件夹(以树形结构),像这样?
/
/Folder 1
/Folder 2
/Child of folder 2
/Child of child of folder 2
/Another Child of of folder 2
/Folder 3
(也许更漂亮一点)。
我使用mysql来存储文件夹数据
CREATE TABLE IF NOT EXISTS `folders` (
`f_id` int(11) NOT NULL AUTO_INCREMENT,
`f_parent` int(11) NOT NULL,
`f_owner` int(11) NOT NULL,
`f_name` varchar(255) NOT NULL,
`f_desc` varchar(1000) NOT NULL,
`f_added` int(11) NOT NULL,
`f_files` int(11) NOT NULL,
`f_private` int(1) NOT NULL,
`f_password` varchar(255) NOT NULL,
PRIMARY KEY (`f_id`),
UNIQUE KEY `f_parent` (`f_parent`,`f_owner`,`f_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
【问题讨论】:
-
我建议您考虑另一种数据结构。见dev.mysql.com/tech-resources/articles/hierarchical-data.html
-
@Artefacto(以及其他阅读本文的人):这篇文章现在位于mikehillyer.com/articles/managing-hierarchical-data-in-mysql。