【问题标题】:Storing file structure in PHP [closed]在 PHP 中存储文件结构 [关闭]
【发布时间】:2009-05-07 09:28:30
【问题描述】:

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

【问题讨论】:

  • 请提供更多详细信息。这些文件在做什么?他们的目的是什么?

标签: php mysql file structure


【解决方案1】:

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

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

【讨论】:

    【解决方案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/

    【讨论】:

    • 这个解决方案还有一个额外的好处是可以轻松地制作一个包含子目录的目录列表。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2014-06-26
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        相关资源
        最近更新 更多