2012-05-31 2 views
0

У меня есть веб-сайт, который использует SQL SERVER 2008, который позволяет пользователю загружать файлы, такие как excel, word, txt, pdf, медиафайлы и другой формат. (Как и Rapishare, Megaupload)Как хранить разные типы документов

Каков наилучший способ их хранения в SQL SERVER?

ответ

2

FILESTREAM или VARBINARY(MAX), но вы должны учитывать плюсы и минусы этого в сравнении с хранением файлов в файловой системе и просто указателем на файл в базе данных.

Доводы для хранения файлов в базе:

  • транзакционной непротиворечивости
  • безопасности (при условии, что вам нужно, и что база данных не настежь все равно)

Минусы:

  • очень большие файлы базы данных + резервные копии (что может быть дорогостоящим, если вы размещаете на чужой torage)
  • гораздо сложнее отлаживать (вы не можете сказать «SELECT doc FROM table» в Management Studio и всплывать Word)
  • сложнее представить документы пользователям (и разрешить их загрузку) - вместо того, чтобы просто представлять ссылку на файл в файловой системе, вы должны создать приложение, которое берет файл и сохраняет его в базе данных, и вытаскивает файл из базы данных, чтобы представить его пользователю.

В SQL Server 2012 FileTable предложит более удобный для использования гибрид.

1

Поскольку вы используете SQL Server 2008, вы можете посмотреть функцию фильтрации. Это должен быть эффективный способ хранения двоичных данных из файлов размером более 1 МБ.

Смежные вопросы