Russian Qt Forum

Qt => Базы данных => Тема начата: crossly от Июнь 15, 2009, 11:53



Название: БД и изображения...
Отправлено: crossly от Июнь 15, 2009, 11:53
день добрый.... помогите советом.... в таблице изображения.... размером этак по 3 - 3,5 Мб (штук этак 10)... мне нужно их отображать по порядку...
как лучше сделать.... выбрать все одним селектом в QSqlQuery... и дальше работать с ним или же заправшивать по одной картинке из БД.... ??


Название: Re: БД и изображения...
Отправлено: break от Июнь 16, 2009, 01:22
Если штук 10 - то пофиг,
А вот если их потом будет 100 а потом 1000, и каждое по 3,5 Мб - то не пофиг, вообще обязательно такие задачи в БД надо тестировать на рельных данных - то есть как будет в программе использоваться в реальности.

Я вообще в случаях когда надо хранить большие объемы информации храню в специальном каталоге - а не в БД. Получается внешняя часть базы - для больших изображений, отчетов в формате rtf и др. Конечно можно все это и в блоб поля пихать - но не вижу никакого смысла. Так как если с операцией например связан документ и пользователь хочет просматривать его в офисной программе - то все равно прийдется его распаковывать во временную папку и т.д. Лучше уж грамотно сетевую папку настроить...



Название: Re: БД и изображения...
Отправлено: White Owl от Июнь 16, 2009, 20:51
Я вообще в случаях когда надо хранить большие объемы информации храню в специальном каталоге - а не в БД. ...
Это не очень хороший подход. Грамотно настроенная сетевая папка не решает проблем с юзерами вне локальной сети, и уж тем более не уменьшает нагрузку на сеть.
Намного лучше хранить файлы в базе, в табличке похожей на FS. Что-то в духе: (filename vachar(64), last_updated datetime, data blob). При обращении к файлу проверять есть ли этот файл уже в локальном каталоге (кеше). Если есть, сравнить дату модификации с полем last_updated. Ну и если надо - выкачиваешь файл из базы и кладешь в локальный кеш. А потом уже работаешь всегда с локальными файлами.