Web アプリケーションを構築する際、データベース エントリに関連付けられたファイルがよくあります。たとえば、user
テーブルがあり、各カテゴリにはavatar
関連する画像へのパスを保持するフィールドがあります。
ファイル名に競合がないことを確認するには、次のいずれかを実行できます。
- へのアップロード時にファイルの名前を変更します
ID.jpg
。パスは次のようになります/user-avatars/ID.jpg
- または、エンティティごとにサブディレクトリを作成し、元のファイル名をそのままにします。パスは次のようになります
/user-avatars/ID/original_filename.jpg
ここで、ID はusers
の一意の ID 番号です
どちらも、アプリケーション ロジックの観点からは完全に有効です。
しかし、ファイルシステムのパフォーマンスの観点からは、どちらが優れているでしょうか? エントリの数category
が非常に多くなる可能性があることに留意する必要があります (数百万)。
ディレクトリが保持できるサブディレクトリの数に制限はありますか?