2011-09-15 5 views
0

私のphp/mysqlアプリケーション用のファイルシステムで文書を整理するにはどうすればよいのだろうかと思っていました。ドキュメントのすべての情報は、データベースに格納されています。私はファイルシステムの構成について興味があります。これは良い方法ですか?より良い方法がありますか?php、mysql - 文書管理のためのフォルダ/ファイル編成

メインフォルダ

/documents 

ユーザーがフォームのドキュメントがデータベースに保存され、移動され記入後、クライアントごとに1つのフォルダが

/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 
私は特定の日付のファイルを置く必要がある場合 /文書/ CLIENT1/docsに私は疑問に思う

:スキャナからのファイルは、ユーザーがデータベースにインポートすることができ、その後、彼らの名前が変更され、に移動しそうになり

このような日付のフォルダ:

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

私はまったく別のフォルダ構造を使用する必要がありますか?

答えて

0

なぜ、一時的な(アップロードされた)ファイルに共通のフォルダを1つだけ使用しないのですか?メンテナンスの手間を省くことができます(古いファイルをすべて削除するなど)。日付の場合

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

:私は 次のように日付フォルダ内の特定の日付のファイルを置く必要がある場合、私は疑問に思う

あなたのデータベースによって処理され、それは不必要です。それにもかかわらず、何らかの理由で手動でこのファイルにアクセスする必要がある場合(インターフェイスを使用しないでください)、役立つ可能性があります。

最後に、ファイルシステムの制限に注意してください。いくつかのfilesytem/osでは、フォルダごとのファイル数に制限があります(巨大ですがまだ)。

+0

変更される可能性があり、いくつかの情報に依存しているということです。そうでない場合は、私はdefinitleyは、このような少なくとも年のフォルダを使用する必要があると思う:/documents/client1/docs/2011/6f99caa11e78697612d8f1b4481cd76a.pdf今私はCentOS 5.5とubuntuを使用していますが、私は最大ファイルですshureではないフォルダごとに。 – superfly

0

私は、ファイル名に従ってファイル構成をハッシュする構造を推奨します。

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

これにより、ファイルへのアクセスが良好になり、必要に応じて構造をより簡単にすることができます。

ディレクトリとして日付を使用しての問題は、ファイルの場所は、私は、ファイルシステムの制限を考えていた(私たちが知っていることはありません!)

+0

私のclient1が自分のサーバ上のすべてのファイルとデータベースを必要とする場合、/ cdか何かが問題になります。 client1のファイルだけを取得するのは難しいかもしれませんが、あなたの考えが好きです:)このようなことを考えています:/documents/client_id/documents/6/f/9/6f99caa11e78697612d8f1b4481cd76a.pdf – superfly

関連する問題