2009-02-25 11 views
3

J'écris une fonction de téléchargement dans .NET pour des images de présentation sur des profils d'utilisateur. Je choisis entre deux façons de le faire, et je voudrais demander des conseils et des opinions sur les avantages et les inconvénients.Images d'utilisateur - base de données contre le stockage de système de fichiers

  1. Stocker les images directement sur le système de fichiers

  2. Stocker les images dans la base de données

Jusqu'à présent, j'ai été la plupart du temps pro la première option - nommer les images après la noms d'utilisateur, car chaque utilisateur ne peut avoir qu'une seule image de présentation. Ensuite, je fais une vérification dans le chemin désigné si l'utilisateur a une image, sinon afficher une image par défaut "no image".

Une autre chose que j'aime à ce sujet est qu'il économise de l'espace dans la base de données - la base de données sera assez lourde sans la charge binaire supplémentaire.

Je suis sûr qu'il y a d'autres aspects auxquels je n'ai pas pensé, alors j'aimerais avoir votre avis là-dessus. Si quelqu'un a une solution radicalement différente au problème, partagez-le également!

+0

duplication possible de [Stocker des images en tant que fichiers ou dans la base de données pour une application Web?] (Http://stackoverflow.com/questions/561447/store-pictures-as-files-or-in-database- For-a-web-app) – mauris

Répondre

2

En général, il est préférable de stocker des fichiers sur le système de fichiers. Les systèmes de fichiers sont déjà réglés pour le stockage des fichiers. Cependant, cela a ses inconvénients, en particulier en termes de gestion, de sauvegarde, de restauration et c'est un peu fragile entre un champ de chemin de fichier varchar dans la base de données et un fichier dans le système de fichiers. Quel système de base de données utilisez-vous? Je pense que si vous utilisez SQL Server 2008, le nouveau type FileStream fournit une très bonne méthode pour stocker des fichiers dans cette base de données.

Editer: Note Je parle surtout de stocker des fichiers dans la base de données. La tentative de stockage des images que vous avez l'intention d'afficher sur les pages HTML de la base de données présente une complexité supplémentaire.

0

Le système de fichiers est bon, mais n'est pas pratique avec plus de 3000 images par dossier. Il est préférable d'écrire une création automatique de dossier pour chaque bloc d'images 3000.

+0

Ouais, en quelque sorte j'ai mal lu le peu au sujet des images. Je laisse mon poste comme la plupart des fichiers dans les discussions de système de fichiers db vs sur SO ne discutent généralement pas FileStream. Je pense que pour les images que vous voulez afficher, stockez-les en tant que fichiers. – BobbyShaftoe

+0

Mais pourquoi n'est-il pas pratique pour plus de 3000 fichiers? Rechercher/accéder aux heures? –

+0

Oui, le temps d'accès aux fichiers explose au-dessus de 1000 par dossier. Vous pourriez dire que cela ne vous dérange pas. Mais en effet, votre administrateur se souciera de la sauvegarde/restauration rapide. La solution efficace consiste à créer des dossiers – wiwulo

-1

Que diriez-vous de stocker des fichiers doc, pdf, xls, jpg? Lequel a recommandé? Je vais travailler sur un système de gestion de documents qui pourrait stocker 10000 fichiers mais le problème est que je suis très préoccupé par la propagation des virus si nous utilisons la technique du système de fichiers.

0
redundency de données

et incohérences difficultés d'accès des données contraintes d'intégrité isolement des données problème de atomicité d'accès simultané et anomalies (updation problème de sécurité

0

Pour le contenu fixe (non changement) tels que des photos, des vidéos, Les systèmes de fichiers ne pourront pas évoluer, surtout si vous avez beaucoup de fichiers dans un répertoire et que les performances en souffriront vraiment.Une meilleure solution consiste à utiliser la technologie de stockage d'objets qui stocke l'image en tant qu'objet et place les métadonnées associées dans la base de données automatiquement.

Questions connexes