私は数年前に電子文書管理システムに取り組み、Gamecat と wic が提案したことのほとんどを実行しました。
つまり、各画像に一意の ID を割り当て、それを使用して画像ファイルへの相対パスを取得します。wic が提案したものと同様の MOD を使用しましたが、3 レベルの各レベルで 1024 個のフォルダー/ファイルを許可したため、1G ファイルをサポートできました。
ただし、ファイルから拡張子を削除しました。DB レコードには MIME タイプが含まれていたため、拡張子は必要ありませんでした。
完全な URL を DB レコードに保存することはお勧めしません。画像 ID のみを保存することをお勧めします。URL を保存すると、DB を変換せずにストレージを移動または再構築することはできません。少なくとも画像リポジトリを移動できるため、相対 URL は問題ありませんが、ID を保存して URL を導出するだけでより柔軟になります。
また、Web から画像ファイルへの直接参照を許可することはお勧めしません。代わりに、サーバー側プログラム (Java サーブレットなど) に URL を提供し、イメージ ID を URL クエリ ( http://url.com/GetImage?imageID=1234
) で提供します。
サーブレットはその ID を使用して、DB レコードの検索、MIME タイプの決定、実際の場所の取得、セキュリティ制限の確認、ログ記録などを行うことができます。