在数据库中存储目录结构

Jat*_*tra 7 database ruby-on-rails

在我的rails应用程序中,用户可以拥有一个目录结构,其中包含子文件夹中的文件夹和文件.哪种是存储此类数据的最佳方式?
此外,哪个数据库提供了最佳方法?

ewa*_*all 5

您可以使用任何SQL数据库将目录树存储在单个表中,方法是使表自引用.一个很好的例子是Windows Installer的Directory表,您将在其中看到如下结构:

  • Directory =主键id字段,通常是整数
  • Directory_Parent ="外键"id字段,指向同一表中另一个Directory的id
  • Value =包含目录/文件夹名称的字符串

然后,您的文件表将具有引用目录ID的外键.要查找完整路径,必须在链中跟进并从末尾(右)构建路径,将每个父目录添加到前面(左侧).例如,文件将指向具有值'子文件夹'的目录ID'4',然后您获取父项的值'文件夹',然后父项再次值,直到您到达根,创建类似的路径/root/folder/subfolder/filename.