在PHP中存储文件结构

时间:2009-05-07 09:28:30

标签: php mysql file structure

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

4 个答案:

答案 0 :(得分:3)

如果你想要结构,你可以有一个目录表和一个文件表。然后,根目录中的每个目录的父ID都为0.然后,每个目录下的父目录的父ID都是父目录。

然后你给出文件目录id以表明它们的位置。

答案 1 :(得分:2)

我的建议与ÓlafurWaage的建议类似,不过我会使用一个表格,指示栏用来表示记录的“类型”。

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/

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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