Russian Qt Forum
Май 22, 2024, 05:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: БД и бинарные данные  (Прочитано 7359 раз)
manarch
Гость
« : Ноябрь 20, 2013, 08:26 »

Дайте совет если кто сталкивался. Пишется база данных для учета обработки материалов. Материалы в данным случае это файлы объемом десятки мегабайт. Данный материал в процессе обработки переходит из одного отдела в другой. Предполагалось что принимающий материал отдел, будет заносить этот материал в базу, все последующие отделы будут выгружать их к себе производит обработки и результат будут вносить в базу. Тем самым в базе будет храниться как входящий оригинал материала, так и промежуточные результаты обработки. Соответственно на последнем этапе будет данные которое непосредственно передадут заказчику. В связи с этим возникает вопрос, как лучше хранить данные: полностью кидать их в базу или сами файлы скидывать в файловое хранилище, недоступное пользователям, а в базу кидать ссылки на их расположение в хранилище, а по запросу пользователя передавать их?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 20, 2013, 08:53 »

Ты бы БД написал сначала.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #2 : Ноябрь 20, 2013, 09:06 »

Я бы посоветовал сначала нарисовать диаграмму взаимоотношений и проработать все возможные действия. На основании этого строим требования и смотрим что хорошо,а что плохо. Заодно и БД выбираем.

PS как показывает практика в 70% случаев говорят "Вот какая то база у нас есть, делайте всё в ней".
Записан
dio
Гость
« Ответ #3 : Ноябрь 20, 2013, 10:32 »

В БД хранить бинарные данные удобней, но время доступа к данным будет больше чем к данным из хранилища. В Вашем случае размер данных довольно велик и загрузка\выгрузка данных займет минуты. Попробуйте провести тест для точного определения этого времени. Если оно удовлетворяет требованиям к Вашей системе, то храните в БД. И еще. Прежде чем проектировать БД, проанализируйте потоки данных. Частоту загрузки\выгрузки данных, суммарный объем активных данных, жизненный цикл данных. Это поможет избежать многих проблем в будущем.   
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Ноябрь 20, 2013, 11:47 »

Как показала моя практика, в SQLite лучше не хранить бинарные данные.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Bepec
Гость
« Ответ #5 : Ноябрь 20, 2013, 12:01 »

В SQLite же вроде всё хранится в строках? Могу конечно и ошибаться, но именно такая информация у меня отложилась Улыбающийся
Записан
dio
Гость
« Ответ #6 : Ноябрь 20, 2013, 13:15 »

В БД подобных SQLite, ясно дело хранить большие объемы бинарных данных не стоит, они не для этого предназначены.
СУБД должна иметь возможность определения под эти цели отдельного табличного пространства с возможностью разбивки его по частям.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #7 : Ноябрь 20, 2013, 19:40 »

Одна из любимых холиварных тем разработчиков БД. В приличных СУБД для этого даже специальные типы данных придумали вроде FileStream и FileTables. Правильный ответ на этот вопрос всегда требует кучи наводящих вопросов, типа:
- какая СУБД?
- какой обычный размер файла?
- как часто изменяется файл?
- нужна ли репликация?
- как производится резервное копирование?
и т.д и т.п.
Записан
manarch
Гость
« Ответ #8 : Ноябрь 21, 2013, 06:15 »

Одна из любимых холиварных тем разработчиков БД. В приличных СУБД для этого даже специальные типы данных придумали вроде FileStream и FileTables. Правильный ответ на этот вопрос всегда требует кучи наводящих вопросов, типа:
- какая СУБД?
- какой обычный размер файла?
- как часто изменяется файл?
- нужна ли репликация?
- как производится резервное копирование?
и т.д и т.п.

Улыбающийся вот. именно поэтому и возник данный вопрос. я не спец по написанию баз данных и не могу составить спектр вопросов которые придется решать при эксплуатации по. Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Ноябрь 21, 2013, 09:05 »

Я в одном из проектов поступил так - для простоты засунул изображения в БД (SQLite). Как только начали жаловаться на торможения при работе с раздувшейся базой, я вынес картинки из базы.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #10 : Ноябрь 21, 2013, 13:58 »

Улыбающийся вот. именно поэтому и возник данный вопрос. я не спец по написанию баз данных и не могу составить спектр вопросов которые придется решать при эксплуатации по. Грустный
Ну теперь-то все правильные вопросы заданы? Или что-то ещё непонятным осталось?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 23.