オンライン ファイル マネージャーのディレクトリにファイルを保存する
-
01-10-2019 - |
質問
私は、ユーザーが自分のアカウントにファイルをアップロードできるサイトを持っており、それらはリストに表示されます。すべてのユーザーのファイルは異なるサーバーに保存され、人気度に応じて移動します (ファイル ホスティング サイトです)。
ユーザーがファイルをフォルダーにグループ化できる機能を追加したいと考えています。従来の方法で、サーバー上のユーザーごとにハード ドライブ上に物理フォルダーを作成し、期待どおりにそれらを横断することができました。その欠点は、ユーザーのファイルが単一のサーバーにバインドされることです。そのサーバーでスペースが不足し始めた場合 (または、同時に多くのファイルが使用されるようになった場合)、スペースを軽減するのは非常に困難になります。
私がやろうと考えたのは、ファイルのステートレスな性質を維持し、ファイルをどのファイル サーバーにも保存できるようにし、データベース内の各ファイルにフォルダー ID (ファイルを所有するユーザー ID に加えて) を単純に保存することです。したがって、ユーザーがファイルを移動することにした場合、ファイルは物理的にどこにも移動されず、データベース内のフォルダー ID を変更するだけです。
それは良い考えですか?phpとmysqlを使用します。
解決
はい、そうです。
データベースへのクエリが増える可能性があることを除けば、欠点は見当たりません。ただし、親フォルダー ID のインデックスを適切に作成すると、ファイル システムに直接アクセスするよりも高速になる可能性があります。
他のヒント
フォルダーのことは忘れて、ユーザーに任せましょう 鬼ごっこ ファイルごとに複数のタグが付いています。それから彼らに見てもらいましょう X タグが付いたファイル. 。これは、仮想フォルダーと実装方法に大きな違いはありませんが、ユーザーにとってははるかに柔軟です。