mysql数据库中的分层目录结构

时间:2013-12-28 11:55:29

标签: php mysql sql database

我正在尝试创建类似Web应用程序的Dropbox。我希望用户创建目录并将文件上传到服务器。我已经完成了大部分任务,但我仍然坚持“如何有效地将目录结构存储在数据库中?”的问题。

项目要求:
1)它应该能够以给定特定目录路径的方式存储目录,它应该能够找到其中的所有文件和目录。 例如:给定路径:root / abc / xyz,我应该能够找到xyz下的所有文件和目录。
2)不同父目录中的两个目录可以具有相同的名称

我对互联网的研究:
1)有一种称为路径枚举的方法,其中应用程序将整个路径存储到与该目录对应的列中的目录 例如:如果我的目录结构为root / abc / xyz 然后在对应于xyz目录的表中的行将存储路径root / abc 但这种方法看起来效率不高 2)我还获得了嵌套集模型的信息。但是树的深度和分层节点的总数是未知的,因此不能使用 3)还有另一种方法,我只在每个目录条目中存储root_directory id而不是整个路径 例如:create table directory(directory_id varchar(32)primary key,directory_name varchar(128),created_date varchar(20),root_directory varchar(32),user_id varchar(32)) 但是我如何使用路径作为root / abc / xyz查询数据库以获取xyz目录下的所有文件和目录。我找到了一些多连接操作来执行此操作。但是随着目录结构的深度增加,连接查询将严重影响性能

请有人向我展示一种更好的解决方案。我很感谢你

0 个答案:

没有答案