Im mon expérience, j'ai dû gérer les deux situations: images stockées dans la base de données et images sur le système de fichiers avec chemin stocké dans db.
La première solution, les images dans la base de données, est quelque peu "plus propre" car votre couche d'accès aux données devra traiter uniquement les objets de la base de données; mais ce n'est bon que lorsque vous devez faire face à des chiffres faibles.
De toute évidence, les performances d'accès à la base de données lorsque vous traitez des objets binaires volumineux se dégradent, et les dimensions de la base de données augmenteront considérablement, entraînant à nouveau une perte de performances ... et normalement, l'espace de base de données est beaucoup plus cher que l'espace du système de fichiers.
D'un autre côté, le fait d'avoir de gros objets binaires stockés dans le système de fichiers vous obligera à avoir des plans de sauvegarde qui doivent prendre en compte à la fois la base de données et le système de fichiers, et cela peut être un problème pour certains systèmes.
Une autre raison d'opter pour le système de fichiers est lorsque vous devez partager vos données d'images (ou sons, vidéo, peu importe) avec un accès tiers: de nos jours, je développe une application web qui utilise des images accessibles depuis "l'extérieur". "ma ferme Web de telle manière qu'un accès à la base de données pour récupérer des données binaires est tout simplement impossible. Il y a donc parfois des considérations de conception qui vous conduiront à un choix.
Considérez également, lorsque vous faites ce choix, si vous devez faire face à l'autorisation et à l'authentification lors de l'accès aux objets binaires: ces conditions peuvent normalement être résolues plus facilement lorsque les données sont stockées dans db.