首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于目录结构的数据结构?

问用于目录结构的数据结构?
EN

Stack Overflow用户
提问于 2008-11-01 17:28:11
回答 7查看 17.4K关注 0票数 11

我正在制作一个程序,用户可以在其中建立目录(不是在windows中,在我的应用程序中),并且在这些文件夹中有子文件夹等等;每个文件夹必须包含文件夹或文档。最好的数据结构是什么?请注意,用户可以选择子文件夹并在其中及其子文件夹中搜索文档。我不想限制文件夹或子文件夹的级别。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-11-01 17:44:31

这就是我要做的:

数据库中的每条记录都有两个字段: ID和ParentID。ID由4-5个字符组成(Base36,a-z:0-9或类似字符)。父ID是父ID的完整结构的串联...

所以..。

此结构:

代码语言:javascript
复制
Root
   Folder1
   Folder2
      Folder3
   Folder4
      Folder5
         Folder6

将表示为:

代码语言:javascript
复制
ID     ParentID     Name

0000   NULL           ROOT
0001   0000           Folder1
0002   0000           Folder2
0003   00000002       Folder3
0004   0000           Folder4
0005   00000004       Folder5
0006   000000040005   Folder6

我喜欢这种结构,因为如果我需要查找某个文件夹下的所有文件,我可以执行如下查询:

代码语言:javascript
复制
SELECT * FROM Folders WHERE ParentID LIKE '0000%' -- to find all folders under Folder1

要删除文件夹及其所有子文件夹,请执行以下操作:

代码语言:javascript
复制
DELETE FROM Folders WHERE ID='0004' AND ParentID LIKE '00000004%'

要移动文件夹及其子文件夹,必须将使用同一父文件夹的所有记录更新为新的父文件夹。

和我不想限制文件夹或子文件夹的级别

这样做的一个明显限制是子文件夹的数量受ParentID字段大小的限制。

票数 15
EN

Stack Overflow用户

发布于 2008-11-01 17:39:24

我可以想出几种方法来构建它,但没有一种方法能比显而易见的更好:

使用实际的文件系统。

票数 8
EN

Stack Overflow用户

发布于 2008-11-01 17:50:57

我会考虑使用某种tree data structure

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/255800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档