Хранить PDF-файлы как двоичные объекты в SQL Server, да или нет?

Я должен найти проектное решение для следующей задачи:

У меня есть база данных SQL Server, и она содержит таблицу заказов. Документы в формате PDF будут загружаться пользователями посредством простой загрузки файла с веб-страницы и назначения заказа. В заказе не более одного документа (возможно, ни одного документа, никогда не более одного). Для этого пользователь открывает веб-страницу, вводит номер заказа, получает отображаемый заказ и нажимает кнопку загрузки. Итак, я знаю, к какому порядку относится загруженный документ.

Сейчас я рассматриваю два варианта хранения документов на веб-сервере:

1) Расширьте мою таблицу заказов по столбцу varbinary (MAX) и сохраните документ PDF непосредственно в этом двоичном поле.

2) Сохраните файл PDF в определенной папке на диске и присвойте ему уникальное имя, связанное с заказом (например, мой номер заказа, который является первичным ключом в базе данных, или GUID, который я мог бы сохранить в дополнительном столбце стол заказов). Возможно, мне нужно хранить файлы в подпапках, по одной в месяц, и сохранять имя подпапки в строке заказа в базе данных, чтобы избежать получения слишком большого количества тысяч файлов в одной папке.

После сохранения файлов PDF их можно загрузить и просмотреть через браузер после ввода соответствующего номера заказа.

Я склоняюсь к варианту (1), потому что мне кажется, что управление данными проще, если все соответствующие данные находятся в одной базе данных. Но я немного боюсь, что со временем у меня могут возникнуть проблемы с производительностью, поскольку размер моей базы данных будет расти гораздо быстрее, чем при решении (2). Около 90% или даже 95% от общего размера базы данных будет составлено только из этих сохраненных файлов PDF.

Вот дополнительная информация:

PDF-файлы будут иметь размер около 100 килобайт каждыйОколо 1500 заказов / PDF файлов в месяцWindows Server 2008 R2 / IIS 7.5SQL Server 2008 с пакетом обновления 1 (SP1) ExpressНе совсем уверен насчет аппаратного обеспечения, я полагаю, один QuadCore Proc. и 4 ГБ оперативной памятиПриложение написано в ASP.NET Webforms 3.5 SP1

(Мне известно, что через 2 года я достигну предела в 4 ГБ для выпуска SQL Server Express с указанными выше числами. Но мы можем игнорировать это здесь: либо удаление старых данных из базы данных, либо обновление до полной лицензии будет возможный вариант.)

Мой вопрос: каковы "за" и "против" вариантов и что бы вы порекомендовали? Возможно, у кого-то была похожая задача, и он может сообщить о своем опыте.

Заранее спасибо за ответ!

Связанные с:

Хранение изображений в БД - да или нет?

Ответы на вопрос(6)

Ваш ответ на вопрос