我正在制作一个程序,用户可以在其中建立目录(不是在windows中,在我的应用程序中),并且在这些文件夹中有子文件夹等等;每个文件夹必须包含文件夹或文档。最好的数据结构是什么?请注意,用户可以选择子文件夹并在其中及其子文件夹中搜索文档。我不想限制文件夹或子文件夹的级别。
发布于 2008-11-01 17:44:31
这就是我要做的:
数据库中的每条记录都有两个字段: ID和ParentID。ID由4-5个字符组成(Base36,a-z:0-9或类似字符)。父ID是父ID的完整结构的串联...
所以..。
此结构:
Root
Folder1
Folder2
Folder3
Folder4
Folder5
Folder6将表示为:
ID ParentID Name
0000 NULL ROOT
0001 0000 Folder1
0002 0000 Folder2
0003 00000002 Folder3
0004 0000 Folder4
0005 00000004 Folder5
0006 000000040005 Folder6我喜欢这种结构,因为如果我需要查找某个文件夹下的所有文件,我可以执行如下查询:
SELECT * FROM Folders WHERE ParentID LIKE '0000%' -- to find all folders under Folder1要删除文件夹及其所有子文件夹,请执行以下操作:
DELETE FROM Folders WHERE ID='0004' AND ParentID LIKE '00000004%'要移动文件夹及其子文件夹,必须将使用同一父文件夹的所有记录更新为新的父文件夹。
和我不想限制文件夹或子文件夹的级别
这样做的一个明显限制是子文件夹的数量受ParentID字段大小的限制。
发布于 2008-11-01 17:39:24
我可以想出几种方法来构建它,但没有一种方法能比显而易见的更好:
使用实际的文件系统。
发布于 2008-11-01 17:50:57
我会考虑使用某种tree data structure
https://stackoverflow.com/questions/255800
复制相似问题