Qui type de données pour le stockage des images et des documents dans SQL Server 2005
Je doit étendre un existant .net-Application pour stocker des images et des documents (pour la plupart en format pdf) dans un Serveur SQL server 2005 bases de données.
Lequel SQL Server type de données est utilisé le meilleur pour l'enregistrement de ces fichiers et est-il significatif de créer une table qui contient les champs, ou bien est-il pas de problème pour mettre ces champs directement dans la "normale" d'affaires des tables, tant que les instructions select ne pas le sélectionner (ou SÉLECTIONNEZ *).
OriginalL'auteur HCL | 2011-01-04
Vous devez vous connecter pour publier un commentaire.
VARBINARY ou FILESTREAM
Pas besoin de les stocker dans une table séparée - il y a des contrôles intégrés que vous pouvez utiliser pour le forcer à être stockés dans/hors de la ligne à l'aide de sp_tableoption:
http://msdn.microsoft.com/en-us/library/ms189087.aspx
http://msdn.microsoft.com/en-us/library/ms186981.aspx
http://www.microsoft.com/sqlserver/2008/en/us/wp-sql-2008-manage-unstructured.aspx
(À noter qu'il pourrait y avoir des avantages pour les stocker dans une table distincte si vous êtes en utilisant différents groupes de fichiers et les sauvegarder de manière indépendante ou quelque chose comme ça - mais qui pourrait être considéré comme exceptionnel)
OriginalL'auteur Cade Roux
SQL Server 2005:
Gouttevarchar(max)SQL Server 2008: FileStream
text
,ntext
etimage
sont obsolètes, donc la réponse correcte pour 2005 devrait être (comme d'autres l'a si bien dit)varchar(MAX)
.convenu Lucero..
varchar? varbinary, sûrement?
OriginalL'auteur kd7
Utilisation varbinary(max) pour stocker des images et des documents dans sql server. Je recommande de les avoir dans une autre table et non pas à la table principale par lui-même.
OriginalL'auteur XtremeBytes
Pour répondre à l'autre partie de votre question, si vous êtes stocker des données binaires dans une base de données, ne pas mélanger les données dans une table avec d'autres champs. Vous n'aurez probablement pas faire de la recherche ou de l'indexation sur les données binaires, et l'accès à toutes les métadonnées seront ralentis par la taille de la table. Gardez juste les images/fichiers dans une table séparée.
Bien que je pense de bonnes raisons de garder les fichiers dans une base de données SQL server (par exemple: n'est pas une application web), ce que @JonH dit: gardez dans le système de fichier, sauf si vous avez une raison de ne pas l'.
OriginalL'auteur Jamie Treworgy