我正在尝试找出用sql创建文件夹系统的最佳方法。我正在做一个网站,将使用类似的系统作为资源管理器在窗口。
打开c:盘,会看到一些文件夹和文件,打开一个文件夹,会看到更多的文件和文件夹。
所以我想问的是,我是不是应该使用一个表,只指向家长的id号,或者别的什么?
我脑海里有这样的想法..您创建一个主文件夹,它获取u_id=1。然后我在该文件夹中创建一个文件,它获取u_id=2和p_id=1,因此我知道它在那里,对吗?文件夹也是如此。
所有这些都在一个表中,但我不禁认为这其中有一些主要的缺陷。
发布于 2010-05-06 00:34:09
我会用几种不同的方法来解决这个问题:
添加一个包含以下列和您需要的任何其他内容的Folders表:
FolderId [INT]
ParentFolderId [NULL INT]
Key [VARCHAR(MAX)]键包含的是当前子对象的每个ParentId,如下所示:
19-144-444-这让你可以轻松地找到子文件夹,而不需要递归。
添加包含以下列的Files表:
FileId [INT]
FolderId [INT]在大多数情况下,文件将具有更多与其关联的元数据,因此没有理由过度使用一个表
发布于 2010-05-06 00:31:18
您所描述的是一个树状层次结构。您使用递归键来指示父子关系是正确的。
一个很好的设计示例:
ID int (PK)
Parent int nullable (FK)
Foldername varchar(100)根据猎人的帖子使用文件
https://stackoverflow.com/questions/2775041
复制相似问题