当前位置: 首页 > 面试题库 >

在关系数据库中存储文件夹层次结构

晁绍辉
2023-03-14
问题内容

我有代表文件夹的对象,我想知道是否应该在数据库中代表它们。

一方面,似乎最简单的方法是不表示文件夹对象,而只存储文件夹中包含的对象的路径值。我看到的问题是,您不能保留其后代不包含任何项目的文件夹,这并不是一件大事。我也不清楚如何在不将所有内容预先加载到内存的情况下加载要显示的文件夹层次结构(例如在TreeView中),这可能是性能问题。

另一种方法是拥有一个“文件夹”表,该表引用其父文件夹。这似乎应该起作用,但是我不确定如何允许具有相同名称的文件夹,只要它们不共享父文件夹。那应该是数据库应该关注的事情,还是我应该在业务逻辑中强制执行的事情?


问题答案:

这个想法是这样的(自我引用):

CREATE TABLE FileSystemObject ( 
    ID int not null primary key identity,
    Name varchar(100) not null,
    ParentID int null references FileSystemObject(ID),
    constraint uk_Path UNIQUE (Name, ParentID),
    IsFolder bit not null
)


 类似资料:
  • 问题内容: 我想将分层的二维科学数据集存储在关系数据库(MySQL或SQLite)中。每个数据集都包含一个数值数据表,其中包含任意数量的列。另外,每个数据集可以具有一个或多个与其表的给定行关联的相同类型的子级。每个数据集通常具有1至100列和1至1.000.000行。数据库应该能够处理许多数据集(> 1000),并且数据的读/写应该相当快。 存储此类数据的最佳数据库模式将是什么?是否有一个“主”表

  • 问题内容: 我的一位客户要求为成千上万种不同格式(例如pdf,doc,docx等)的文档提供文档管理系统。我的问题是在数据库或文件系统中存储此文件的最佳方法是什么?两种方法之间如何轻松保护文档? 快速检索文件是关键要求。 我正在使用mysql如果有帮助 问候。 问题答案: 您可能希望将其直接存储到文件系统中。 使用文件系统时,请注意: 机密性: 将文档放在Apache文档根目录之外。然后,您的PH

  • 我正在将nTier架构迁移到六边形架构中。我的域现在定义得很好,我有所有基础设施依赖项的接口。查看数据库存储库,我有几个数据库,在下面的一侧有一个类实现每个repo。我的问题是关于数据库依赖项的正确方法是什么: 1-在域端有一个接口来处理数据访问,然后依赖于基础设施实现,并有一个类作为所有数据库存储库的入口点,就像一个facade,从那里调用所有存储库实现。这种方法与我在nTier应用程序中已经使

  • 我在谷歌上搜索过,找不到任何可以在O(1)时间内存储和读取双向数据的DS。例如书籍和作家。有了书的名字,就必须找到作者。有了作者的名字,就必须找到书。 在数据库中,这些关系(如联接表)是如何存储的? 提前谢谢。

  • 我正在尝试用gradle创建一个dist-zip。我想在zip的根目录中找到我的jar。并在lib文件夹中查找所有依赖项。我没有成功。 无论我尝试了什么,只有一个文件夹正在创建(我尝试创建一些文件夹)。我的神器罐子包含在这个文件夹中。 我将感谢任何帮助。 这是我的任务定义:

  • 通过学习《 Linux一切皆文件》一节我们知道,平时打交道的都是文件,那么,应该如何找到它们呢?很简单,在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构,如图 1 所示。 图 1 Linux 系统文件和目录组织示意图 其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是真正的信息。 文件系统的最