J'ai travaillé sur un système de gestion électronique des documents il y a quelques années, et nous avons fait à peu près ce que Gamecat et wic ont suggéré.
C'est-à-dire, attribuer à chaque image un ID unique, et l'utiliser pour dériver un chemin relatif vers le fichier image. Nous avons utilisé un MOD similaire à celui suggéré par wic, mais nous avons autorisé 1024 dossiers/fichiers à chaque niveau, avec 3 niveaux, afin de pouvoir supporter des fichiers de 1G.
Nous avons cependant supprimé l'extension des fichiers. Les enregistrements de la base de données contenaient le type MIME, l'extension n'était donc pas nécessaire.
Je ne recommande pas de stocker l'URL complète dans l'enregistrement de la base de données, mais seulement l'ID de l'image. Si vous stockez l'URL, vous ne pouvez pas déplacer ou restructurer votre stockage sans convertir votre BD. Une URL relative serait acceptable puisque de cette façon vous pouvez au moins déplacer le dépôt d'images, mais vous aurez plus de flexibilité si vous stockez juste l'ID et dérivez l'URL.
De même, je ne recommande pas d'autoriser les références directes à vos fichiers d'images à partir du Web. Fournissez plutôt une URL vers un programme côté serveur (par exemple, Java Servlet), l'ID de l'image étant fourni dans la requête URL ( http://url.com/GetImage?imageID=1234
).
La servlet peut utiliser cet ID pour consulter l'enregistrement de la base de données, déterminer le type MIME, dériver l'emplacement réel, vérifier les restrictions de sécurité, la journalisation, etc.