2011-09-15 90 views
0

我想知道在我的php/mysql應用程序的文件系統中組織文檔的好方法是什麼。文檔的所有信息都存儲在一個數據庫中,我很好奇文件系統的組織結構。這是做這件事的好方法嗎?有沒有更好的辦法?php,mysql - 用於文件管理的文件夾/文件組織

主文件夾,每個客戶端

/documents 

一個文件夾

/documents/client1 

文件都在這裏上傳的每個客戶端

/documents/client1/queue 

後用戶填寫表單文檔保存到數據庫和移動在此文件夾中

文檔
/documents/client1/docs 

原件和文件系統名稱存儲在數據庫和文件系統的名字有點像MD5($時間$文件名。$ CLIENT_ID)和文件的路徑看起來像這樣

/documents/client1/docs/6f99caa11e78697612d8f1b4481cd76a.pdf 

我需要(最小)PDF拇指和經銷商的條形碼讀取的第一頁從第一頁

/documents/client1/docs/6f99caa11e78697612d8f1b4481cd76a/6f99caa11e78697612d8f1b4481cd76a-0.gif 

我也有

/documents/client1/scan 

,其中從掃描文件的推移,使用戶可以在數據庫導入後,他們被重新命名並移動到: /文件/客戶端1 /文檔

我不知道是否應該把文件中的具體日期日期文件夾是這樣的:

/documents/client1/docs/20110915/6f99caa11e78697612d8f1b4481cd76a.pdf 

或者我應該使用完全不同的文件夾結構?

回答

0

爲什麼不對臨時(上傳)文件只使用一個公用文件夾?它可以使維護例程更容易(例如刪除所有舊文件)。

我不知道是否應該把針對特定日期的文件的日期文件夾像 這樣:

/documents/client1/docs/20110915/6f99caa11e78697612d8f1b4481cd76a.pdf

如果日期由你的數據庫處理它是不必要的。然而,如果由於某種原因,您需要手動訪問此文件(不使用您的界面),這可能會有所幫助......

最後但並非最不重要的是要知道您的文件系統的限制。在某些文件系統/操作系統上,你可能會限制每個文件夾的文件數量(巨大但仍然)。

+0

我在想限制文件系統的一些信息。如果不是整個日期,我認爲我應該definitley至少使用一年文件夾,如下所示:/documents/client1/docs/2011/6f99caa11e78697612d8f1b4481cd76a.pdf現在我使用CentOS 5.5和Ubuntu,但我不舒服什麼是最大文件每個文件夾。 – superfly

0

我會優先考慮一個根據文件名散列文件結構的結構。

/documents/6/f/9/6f99caa11e78697612d8f1b4481cd76a.pdf 

這將保持良好的文件訪問,並且如果需要的話,它可以使結構更加容易。

使用日期爲目錄的問題,是該文件的位置是依賴於可以改變(我們永遠不知道!)

+0

與此問題是如果我的客戶端1想要他們的服務器/ CD或其他任何文件和數據庫。它可能很難只獲取client1的文件,但我喜歡你的想法:)我正在考慮這樣的事情:/documents/client_id/documents/6/f/9/6f99caa11e78697612d8f1b4481cd76a.pdf – superfly