Sql 在虚拟文件系统的数据库中使用什么结构? 我想在WEB中做一个Web应用程序,会有一些用户使用不同的项目(比如C项目、C++项目等等)。我的问题是,我应该如何建立我的3个表:用户、项目、文件?一个用户可以有许多项目(也会有共享项目),这些项目可以有文件夹(包)和文件,但在文件系统上,我不想让文件夹层次结构只指向数据库中的特定文件

Sql 在虚拟文件系统的数据库中使用什么结构? 我想在WEB中做一个Web应用程序,会有一些用户使用不同的项目(比如C项目、C++项目等等)。我的问题是,我应该如何建立我的3个表:用户、项目、文件?一个用户可以有许多项目(也会有共享项目),这些项目可以有文件夹(包)和文件,但在文件系统上,我不想让文件夹层次结构只指向数据库中的特定文件,sql,mysql,filesystems,Sql,Mysql,Filesystems,也就是说,我是user1,我有project1,其中有3个文件夹:headers、resource、source,每个文件夹或根目录中都有几个文件。问题是,我想从user1获取所有与项目相关的数据,并将其放在树视图中,但在服务器上,所有文件都位于同一文件夹中,并随机生成名称。您可以使用如下结构 或者,您可以将文件存储在数据库中的某种BLOB(MEDIUMBLOB) 您有一个用户列表,还有一个项目列表。user\u project表允许您为一个项目分配多个用户,并为一个用户分配多个项目 每个文件夹

也就是说,我是user1,我有project1,其中有3个文件夹:headers、resource、source,每个文件夹或根目录中都有几个文件。问题是,我想从user1获取所有与项目相关的数据,并将其放在树视图中,但在服务器上,所有文件都位于同一文件夹中,并随机生成名称。

您可以使用如下结构

或者,您可以将文件存储在数据库中的某种
BLOB
MEDIUMBLOB

您有一个
用户列表
,还有一个
项目列表
user\u project
表允许您为一个项目分配多个用户,并为一个用户分配多个项目


每个
文件夹
都属于一个项目,并且可以有一个
父文件夹id
来允许层次结构。每个文件都有一个
父文件夹\u id
,它是对包含该文件的文件夹的引用。文件系统中的
name\u
是用于存储文件的随机名称。

回答好,请将文件存储在数据库中,否则,如果在更改过程中出现问题,您可能会遇到文件与数据库不同步的问题。回答好,但是不支持子文件夹。@如果我误解了您的评论,NorbertBoros很抱歉,但是
文件夹。父文件夹\u id
将用于创建文件夹的层次结构。好的,但假设用例需要文件/foo/bar/zoo/etc/MyFile.txt。我们怎么能拿到这个?sql查询是什么样子的?这可以在单个查询中完成,还是应该触发多个查询?@AlkisMavridis:理想情况下,您可以使用分层查询来完成。已经有很多例子了,这是MySQL的答案:
users
  id
  name
  ...

projects
  id
  name
  ...

user_projects
  user_id
  project_id

folders
  id
  name
  project_id
  parent_folder_id
  ...

files
  id
  filename
  parent_folder_id
  name_in_filesystem
  ...