0

存储文件结构以及文件(例如 Zip 文件)的最佳方式是什么?目前每个文件都是 MySQL 数据库中的一行,但显然无法从中读取结构。我想避免存储二进制文件。所有文件都应该是纯文本。每个 zip/文件结构对于提交它的用户都是私有的。

4

4 回答 4

3

如果你想要结构,你可以有一个目录表和一个文件表。然后对于根目录中的每个目录,其父 id 为 0。然后,该目录下的每个目录都具有其父级的父 id。

然后你给文件目录 id 来指明它们的位置。

于 2009-05-07T09:33:01.010 回答
2

我的建议与 Ólafur Waage 的建议类似,但我会使用一个表,其中包含指示符列来表示记录的“类型”。

id - Primary Key
parent_id - FK to self (id)
type - enum('D', 'F')
name - varchar
content - BLOB (if you wanted to ever store the file contents).

这遵循分层树结构,对于 MySQL,您可以在此处找到更多信息:http: //mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

于 2009-05-12T20:34:54.537 回答
0

最简单的方法(也许不是最好的)是确定您所追求的目录树的“根”文件夹,然后在每个文件上获取相对于该文件夹的路径并将其存储为数据库中的另一列(例如“路径”)桌子。您稍后可以查看这些值来构建相同的目录结构。

于 2009-05-07T09:59:38.310 回答
0

最好是上下文相关的。但从表面上看,我会说存储文件结构的最佳方式是在文件系统中。除非您需要将条目与其他记录链接在一起或以其他方式查询它们,否则关系数据库并不是任意分层数据的最佳选择。您还可以使用混合解决方案,在数据库中保留索引、文件路径和一些元数据,但仍将其存储在文件系统中。

于 2009-05-07T10:02:35.463 回答