mysql - 创建文件夹/文件结构

标签 mysql tree rdbms

我正在考虑将工作目录(即递归/嵌套文件夹/文件)存储到 mysql 数据库中。

这个想法是有一个“项目”表,以及一个包含所有文件夹/文件及其在树中相应路径的表(varchar)。
查询项目应该返回文件夹和文件作为字符串路径列表(+一些元数据),我将使用它在客户端构建树。

我应该提到,我的工作目录中的"file"记录是表示 mongodb 数据存储中的 json 文件的元数据(它们将网页描述为复杂的嵌套 json)。文件记录将比文件夹更频繁地被查询(它们根本不会被查询),并且将链接到其他表。文件对于我的应用程序具有与文件夹不同的含义,文件夹仅对于我的工作目录很重要。

我的问题是最好的选择是什么:

  • 将文件和文件夹存储在单独的表中
  • 将文件和文件夹存储在同一个表中(记录几乎相同),并在包含 2 条记录"file"/“文件夹”的联接表上使用 FK

最佳答案

简短回答:“经典”关系数据库(包括 mysql)对此不太擅长。这是一个很好的链接:Managing hierarchical data in mySQL

另一方面,Wordpress 是一个可以完成您想要做的许多事情的应用程序 - 并且它都是在 mySql(或等效的 RDBMS)中完成的。

here ,特别注意"taxonomies"部分。

另一种方法可能是查看 graph database ,例如 neo4J .

“希望有帮助......”

关于mysql - 创建文件夹/文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38554504/

相关文章:

mysql - 根据另一个表中的 count(*) 值更新表中的多个列

linux - 在 bash 脚本中制作基本树结构的问题

Java指针或节点赋值理解错了吗?

javascript - 使用 javascript 从数组路径中获取树结构

sql - ERD 图中的关系何时在 RDBMS 中获得单独的表

mysql - 提取具有最大值的行

php - 对 500 万行的数据库进行 boolean 搜索,非常慢

javascript - 显示所选名称的数据库值并将该名称插入另一个表

php - 管理用户警告