2012-01-30 9 views
2

私は、ユーザがサインアップしてポートフォリオの画像と動画をアップロードするウェブサイトを持っています。各ユーザーはいくつかの基準の下に表示され、訪問者が自分の名前をクリックすると、ポートフォリオが表示されます。MySQLのユーザとフォルダ

私の質問は、画像や動画をそこにアップロードしたり、アップロードしたファイルの名前を変更したり、名前を変更したりすることができるように、各ユーザーのフォルダを作成することです(unique_idの名前を付けて登録するときに) 1つのフォルダ内のすべて。または、バイナリBLOB変換を使用して画像をデータベースに直接格納しますか?

+0

[DBに画像を保存する - はい、いいえ?] –

+0

おそらく関連:[保存中データベース内のファイルを保存する際の賛否両論は何ですか?(http://stackoverflow.com/q/3748/367456)/2458739/367456)。 – hakre

答えて

1

パフォーマンスの観点からは、ユーザーあたりのディレクトリがある方が良いと思います。 NTFSパーティション上のディレクトリの最大限の制限は、どのアプリケーションでも十分にあるはずの40億以上と思われます。

Linux/Unixを使用している場合、最大のフォルダ数はパーティションの種類によっても異なりますが、NTFの制限が十分に大きい場合、ext3またはジャーナル化されたファイルシステムのどれかに十分な容量限界もある。

DBまたはファイルシステムに画像を保存する方がよいかどうかについては、他の人がよく知られているrelated question hereを指摘しています。私の考えは、一般的にどちらのソリューションもうまくいき、究極的には趣味の決定を下すために賛否両論があります。

1

すでに述べたように、ファイルまたはデータベースは重複しています。

ファイルの保存について:

これを実行するにはさまざまな方法があります。これは、必要なパフォーマンス、ユーザーの量、ファイルの量などによって異なります。

たとえば、1人で何十万ものファイルをアップロードする場合、1つのフォルダにすべてのファイルを入れることは賢明ではありません。

何百万人ものユーザーがいる場合は、userdata /内に数百万のフォルダが作成されるため、userdata/{userid} /のような構造は望ましくありません。それも可能性のある問題を与えるだろう。

たとえば、ユーザーデータを別のサーバーに保存することで、何らかのシャーディングアプローチを実装できます。したがって、「通常のファイルとして保存する」を選択すると、たくさんのオプションが可能になります。

関連する問題