Как обычно, это зависит. Вы должны рассмотреть схему использования изображений и какие функции предоставляет ваша СУБД.
Хранение изображений в базе данных:
ПРОФИ
- Если изображения должны быть связаны с объектами в вашей базе данных (скажем, пользователем), база данных может позаботиться о поддержании этих отношений. Если, с другой стороны, изображения не связаны ни с чем в базе данных, вы, вероятно, не захотите хранить их в базе данных.
- Если ваша база данных поддерживает это, вы сможете обрабатывать файлы в транзакции (я полагаю, что MS SQL 2008 поддерживает это, я не знаю, делают ли это другие).
- Если вам нужно хранить несколько версий каждого изображения (скажем, потому что они меняются со временем), это, вероятно, будет проще сделать в базе данных, чем в файловой системе.
CONS
- Вы будете сильно напрягать базу данных.
- Резервное копирование базы данных может занять много времени.
Хранение изображений на диске:
ПРОФИ
- Создание резервных копий тривиально
- Для просмотра изображений и т. Д. Требуется только браузер файлов, клиент базы данных не требуется
CONS
- Поддержание синхронизации базы данных с коллекцией изображений и фактического содержимого на диске может быть нетривиальным, в зависимости от операций, которые вы будете выполнять над изображениями.
Конечно, все эти проблемы особенно актуальны, если вы храните большое количество изображений.