文件夹sql编程
我试图找出用sql创建文件夹系统的最佳方法。 我正在制作一个网站,将使用类似的系统作为浏览器在windows中 打开c:驱动器,会看到一些文件夹和文件,打开一个文件夹,会看到更多的文件和文件夹 那么我想问的是,我会用一个表来表示这一点,然后指向家长id号还是什么 我脑子里有这个。。如果创建一个主文件夹,它将获得u_id=1。然后我在那个文件夹中创建一个文件,它得到u_id=2和p_id=1,所以我知道它在那里,对吗?文件夹也是如此文件夹sql编程,sql,Sql,我试图找出用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*,
,这将使您在整个链中获得该文件夹的所有子项,而无需递归