Какой тип данных для хранения изображений и документов в SQL Server 2005 - PullRequest
8 голосов
/ 05 января 2011

Я должен расширить существующее .net-приложение для хранения изображений и документов (в основном PDF-файлов) в базе данных SQL Server 2005.

Какой тип данных SQL Server лучше всего использовать для сохранения этих файлов, и имеет ли смысл создавать отдельную таблицу, содержащую поля, или нет проблем поместить эти поля непосредственно в «нормальные» бизнес-таблицы, если только операторы select не выбирают их (или SELECT *).

Ответы [ 4 ]

7 голосов
/ 05 января 2011

SQL Server 2005: Blob varchar (max)
SQL Server 2008: FileStream

6 голосов
/ 05 января 2011

VARBINARY или FILESTREAM

Нет необходимости хранить их в отдельной таблице - существуют встроенные элементы управления, которые можно использовать для принудительного сохранения в / из строки, используя 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

(Обратите внимание, что может быть полезно хранить данные в отдельной таблице, если вы используете разные файловые группы и поддерживаете ихсамостоятельно или что-то в этом роде - но это можно считать исключительным)

3 голосов
/ 05 января 2011

Используйте varbinary (max) для хранения изображений и документов на сервере sql.Я бы порекомендовал, чтобы они были в отдельной таблице, а не в основной.

1 голос
/ 05 января 2011

Чтобы ответить на другую часть вашего вопроса, если вы храните двоичные данные в базе данных, не смешивайте данные в таблице с другими полями.Скорее всего, вы не будете выполнять поиск или индексацию двоичных данных, и доступ к любым метаданным будет замедлен из-за размера таблицы.Храните только изображения / файлы в отдельной таблице.

Хотя я могу придумать веские причины хранить файлы в базе данных сервера SQL (например, не в веб-приложении), но и @JonH говорит: храните их в файловой системе, если у вас нет веских причинне к.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...