将主目录中的文件和子目录与数据库进行比较的算法

问题描述:

我需要在数据库中递归地更新目录中的文件路径。就像我在目录中做了任何更改一样,那么必须在数据库中进行更新。什么是使用PHP和MySQL来做到这一点的最好和最快的方法。将主目录中的文件和子目录与数据库进行比较的算法

+1

是什么问题? – 2012-01-11 14:03:02

+0

你可以看看['Inotify'](http://www.php.net/manual/en/book.inotify.php)扩展名。 – lonesomeday 2012-01-11 16:04:09

在你的MySQL数据库,你必须有这些表:

Directory{ 
    directory_id: integer; 
    directory_name: varchar; 
    directory_path: varchar; 
    parent_id: fk_to_directoy_id; 
} 

File{ 
    file_id: integer; 
    file_name: varchar; 
    directory_id: fk_to_directory_id; 
} 

这样你就可以建立分层目录结构,然后将文件附加到其目录。

然后,你只需要在PHP后台管理这些表。 (看起来很容易的框架Symfony

希望它对你有所帮助。祝你好运。

+0

实际上我在我的数据库中使用了类似的结构,但是我得到的问题是目录中的每个更新都需要花费大量时间来扫描所有子目录并将更新存储在数据库中。目录大小为千兆字节,一些文件本身大约为2GB。此外,该目录在像DropBox这样的远程服务器上。目前,我正在使用PHP的DirectoryIterator类从目录获取文件路径,并将其映射到数据库以检查任何更新 – user434509 2012-01-11 16:24:19