Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件夹sql编程_Sql - Fatal编程技术网

文件夹sql编程

文件夹sql编程,sql,Sql,我试图找出用sql创建文件夹系统的最佳方法。 我正在制作一个网站,将使用类似的系统作为浏览器在windows中 打开c:驱动器,会看到一些文件夹和文件,打开一个文件夹,会看到更多的文件和文件夹 那么我想问的是,我会用一个表来表示这一点,然后指向家长id号还是什么 我脑子里有这个。。如果创建一个主文件夹,它将获得u_id=1。然后我在那个文件夹中创建一个文件,它得到u_id=2和p_id=1,所以我知道它在那里,对吗?文件夹也是如此 这将全部放在一个表中,但我忍不住认为这其中存在一些主要缺陷。您所

我试图找出用sql创建文件夹系统的最佳方法。 我正在制作一个网站,将使用类似的系统作为浏览器在windows中

打开c:驱动器,会看到一些文件夹和文件,打开一个文件夹,会看到更多的文件和文件夹

那么我想问的是,我会用一个表来表示这一点,然后指向家长id号还是什么

我脑子里有这个。。如果创建一个主文件夹,它将获得u_id=1。然后我在那个文件夹中创建一个文件,它得到u_id=2和p_id=1,所以我知道它在那里,对吗?文件夹也是如此


这将全部放在一个表中,但我忍不住认为这其中存在一些主要缺陷。

您所描述的是一个树层次结构。 使用递归键指示父子关系是正确的

一个很好的设计示例:

ID int (PK)

Parent int nullable (FK)

Foldername varchar(100)

按照hunter的帖子使用文件

我会用几种不同的方法来解决这个问题:

添加一个
文件夹
表,其中包含以下列以及您需要的任何内容:

FolderId [INT]
ParentFolderId [NULL INT]
Key [VARCHAR(MAX)]
该键保存的是当前子项的每个ParentId,如下所示:

19-144-444-
这使您可以轻松地查找子文件夹,而无需递归

添加包含以下列的
文件
表:

FileId [INT]
FolderId [INT]

在大多数情况下,文件将有更多的元数据与其关联,因此没有理由过度使用一个表

如果您的RDBMS没有很好的方法来促进递归查询,我会特别使用Key方法。如果我理解正确的话。。密钥保存当前文件夹下所有内容的id?几乎没有丢失:oNo,该键保存其所有的AnteStorsso如果这是T-SQL,您可以从键为“22-332-%”的文件夹中编写
SELECT*,
,这将使您在整个链中获得该文件夹的所有子项,而无需递归