powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение файлов в БД
25 сообщений из 66, страница 1 из 3
Хранение файлов в БД
    #33666073
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос:

Есть БД на Oracle.
Требуется организовать хранение файлов ЛЮБЫХ! типов в БД с возможностью поиска текста по текстовым документам (вероятно Oracle Text, blob).
Каким образом лучшк организовать доступ и просмотр файлов из клиента (клиент толстый, С++, OCI). Начальство хочет видеть реализацию OLE в клиенте, то есть может прямо в окошке клиента в OLE-контейнере посмотреть файлик, подредактировать и т.д., кто-нибудь так делал? По-моему очень нестабильно и реализация будет слишком сложной,если не сказать что в потребном виде это сделать просто невозможно (почитал-потестил по теме, кажется именно невозможным сделать универсальный вариант с обработкой ЛЮБЫХ файлов). К тому же OLE подразумевает хранение данных в Compound Storage, который реализовать в Oracle можно, но текстового поиска по форматированным документам точно не будет из-за специфики сохранения OLE объектов.

Мне представляется наилучшим вариантом просто возможность скачать, закачать, обновить, вызвать ассоциированное с файлом приложение для открытия файла и все. Простой и надежный вариант.

Какие будут мысли по-поводу? Есть что присоветовать?
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666075
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, и еще. Подразумевается что открывать в клиенте файлы для просмотра нужно через OCI напрямую с БД, не копируя файл или какие-либо данные непосредственно на ПК клиента. Потому что могут быть достаточно большие видео-файлы.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666180
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с OLE нормально работает, минимум кодинга и максимум универсальности. Отсутствие гемора с админством, если всё хранится в БД. Полнотекстовый поиск я пока не сделал, но он достаточно прост (в рамках подхода,который я собираюсь применить). Так что, проверено, мин нет!
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666191
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Programmer_OrtodoxВариант с OLE нормально работает, минимум кодинга и максимум универсальности. Отсутствие гемора с админством, если всё хранится в БД. Полнотекстовый поиск я пока не сделал, но он достаточно прост (в рамках подхода,который я собираюсь применить). Так что, проверено, мин нет!

Можно вопрос: а что у вас за документы используются через OLE? Безусловно хороший вариант, когда используются, скажем, только OLE-объекты Microsoft Office.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666216
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любые файлы можно хранить как object package, exe, zip,...и самые экзотические.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666339
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Programmer_OrtodoxЛюбые файлы можно хранить как object package, exe, zip,...и самые экзотические.
Да, тут ты без сомнения прав, но только у меня начальство этот вариант не удовлетворил, потому что Windows Packager при активации OLE-объекта распаковывает его в исходный файл в TEMP и оттуда его выполняет. :) При открытии больших видео-файлов будет тормоз...
К слову сказать, Windows Packager немного глюкавая утилитка по одной причине - не принимает исходные данные в виде файла, а требует указатель на HGLOBAL, поэтому при создании БОЛЬШИХ OLE-объектов может просто кончиться память, у меня при тестировании (создать из 1.5 Гб видео-файла) вывалилась ошибка - в системе кончилась память, а у меня 1 Гб ОЗУ + 1.5 Гб свап. >-] Это конечно был эдакий черезчур стресс-тест, но клиент должен работать на гораздо более слабых машинах чем у меня. К тому же при пользовании Windows Packager будут проблемы с In-Place Activation.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666436
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компетентное начальство есть не у всех, вам повезло. Можно не использовать упаковщик объектов, а вводить самостоятельный тип данных для каждого формата. Для некоторых можно хранить сжатый оригинал в блобе, а текстовую вижимку отдельно(для поиска). Просто я делал информационную систему для личных нужд и мне было важно работать как можно меньше. Это и было основным побудительным мотивом на пути универсализации
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666502
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что касается Windows Packager и HGLOBAL, то я с ними и не парился. У меня просто открывается файл(любой) через стандартный диалог, он падает в динамически создаваемый OLE-объект. Всё.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666549
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Programmer_OrtodoxА что касается Windows Packager и HGLOBAL, то я с ними и не парился. У меня просто открывается файл(любой) через стандартный диалог, он падает в динамически создаваемый OLE-объект. Всё.

Я с ними парился, чтобы понять, что и как неправильно работает, когда выявился глюк с видео-файлами. Я попытался сам создать экземпляр Com-объекта Windows Packager, и ему скормить этот файл - так он забрыкался, и я проверил, то, какие параметры он принимает, небольшим скриптиком.
А диалог есть стандартный виндовый. :)

P.S. Если делать самостоятельные типы и т.д. То лучше уж совсем не заморачиваться с OLE, а сделать типовое решение с перекачкой именно файлов.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666583
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, но здесь разница в трудозатратах будет основательной.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666608
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Programmer_OrtodoxСогласен, но здесь разница в трудозатратах будет основательной.
Вы вроде Delphi-разработчик, если это делать на Дельфи, то, пожалуй, да. А вот на С++...
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666632
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет OLE я пожалуй не готов согласиться. Довольно удобная вещь, когда например, делаешь документ Word, а туда требуется включить фрагмент (а не весь файл, который очень большой) из Autocad, Excel и P-CAD. Сохраняется как OLE-Word, потом может многократно редактироваться, причем всё это должно быть оперативно, без лишних телодвижений.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33666673
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Programmer_OrtodoxНа счет OLE я пожалуй не готов согласиться. Довольно удобная вещь, когда например, делаешь документ Word, а туда требуется включить фрагмент (а не весь файл, который очень большой) из Autocad, Excel и P-CAD. Сохраняется как OLE-Word, потом может многократно редактироваться, причем всё это должно быть оперативно, без лишних телодвижений.

Но у меня то не форматированный документ, а Клиент-серверная система и основная цель - централизованное хранение файлов в Базе данных и обеспечение доступа к ним, а остальное - это уже второстепенные вещи. Без OLE будет достигнуто более универсальное и, главное, НАДЕЖНОЕ решение, ИМХО.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667123
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> основная цель - централизованное хранение файлов в Базе данных

Более чем странная цель.

> будет достигнуто более универсальное и, главное, НАДЕЖНОЕ решение

Надежное универсальное решение - хранить файлы в файловой системе. Любые другие варианты за незначительным исключением - от лукавого.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667192
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> Надежное универсальное решение - хранить файлы в файловой системе. Любые другие варианты за незначительным исключением - от лукавого.

В данном случае нет, просто продукт является коммерческим и как показывает практика - велика вероятность что сервер попадет в чьи то шаловливые ручки, случаи были. Так что пускай лучше все ледит в одном месте - в базе.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667315
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> основная цель - централизованное хранение файлов в Базе данных

Более чем странная цель.

> будет достигнуто более универсальное и, главное, НАДЕЖНОЕ решение

Надежное универсальное решение - хранить файлы в файловой системе. Любые другие варианты за незначительным исключением - от лукавого.Это если файлы неизвестного размера. а если допустимо ограничение в несколько мегабайт - то в БД куда лучше, чем на диске.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667380
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Programmer_OrtodoxНа счет OLE я пожалуй не готов согласиться. Довольно удобная вещь, когда например, делаешь документ Word, а туда требуется включить фрагмент (а не весь файл, который очень большой) из Autocad, Excel и P-CAD. Сохраняется как OLE-Word, потом может многократно редактироваться, причем всё это должно быть оперативно, без лишних телодвижений.

вопрос про сохраняемые файлы...
стримы поддерживает БД ?


с уважением
(круглый)
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667560
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В данном случае нет

Дружище, кривая архитектура приложения не оправдывает кривых решений.

> Это если файлы неизвестного размера

Очень просто запомнить: для файлов - файловая система. Исключение - если файлов очень много ("много" для разных файловых систем будет иметь разное значение) и они очень небольшого размера (с аналогичным замечанием).
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667787
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dogen
Это если файлы неизвестного размера. а если допустимо ограничение в несколько мегабайт - то в БД куда лучше, чем на диске.

Действительно, было бы интересно аргументацию услышать. Чем именно лучше?
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33667885
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин Dogen
Это если файлы неизвестного размера. а если допустимо ограничение в несколько мегабайт - то в БД куда лучше, чем на диске.

Действительно, было бы интересно аргументацию услышать. Чем именно лучше?
Да тут по форуму немало аргументов и за и против. В большей степени те и другие обусловлены эстетическим чувством проектировщика. Если в функциональность SQL-сервера входит предоставление удобного доступа к файлам, лежащим фиг знает где, по какому-то протоколу (интересно, по какому?..), то еще можно что-то обсуждать, а если нет, то этот самолет будет некрасивый и не полетит. А ну как права доступа на файл-сервере послетают, тогда что делать будем? Вам наверное все равно, сколько точек отказа в системе, и сколькими способами надо доступ раздавать.

Ну, конечно, веселые картинки в базе MySQL 3.2х хранить вредно, это да, пусть на диске лежат. Но я думаю, здесь вещи посерьезнее порносайтов обсуждаются?..
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33668333
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, я исхожу из обратной посылки - если sql-сервер умеет как-то понимать внутренню структуру файлов и осуществлять по ним осмысленный поиск - "ну еще можно о чем-то говорить". Но рассматривается явно не это случай.
А если поиска нет - то и нафига серверу доступ к этим файлам? Если все равно ничего осмысленней, чем отдать их клиенту as is, он не сможет? Пусть уж клиент их сразу запрашивает у файл-сервера.
Имхо неструктурированную информацию в базе лучше не держать, она не для этого предназначена.
права доступа - это да, но с другой стороны - бекапить файлы легко отдельно от базы. (в случае хранения внутри это потребует специальных телодвижений, отдельной базы, отдельной стратегии бекапа для нее - то есть
возникают те самые лишние точки отказа). Масштабируется опять же проще,
в зависимости от того, с чем возникла проблема, можно наращивать либо
файл-сервер, либо SQL-сервер. В случае внутреннего хранения такого выбора нет.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33668405
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> немало аргументов и за и против

Да нет никаких аргументов "за". И быть не может. Ситуацию, когда это оправданно, я описал.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33670006
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> В данном случае нет

Дружище, кривая архитектура приложения не оправдывает кривых решений.


Мну и какая же может быть прямая архитектура приложения, когда, например, админ конторы, которая купила продукт, позволяет устанавливать игрушки на сервере? Тут хоть распрямая архитектура приложения будет - все равно ж*па. :)
А контора сервера клиентов не админит.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33670422
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> когда, например, админ конторы, которая купила продукт, позволяет
> устанавливать игрушки на сервере?

Дебилы есть не только среди системных администраторов, - не новость. Непонятно, как это связано с Вашим вопросом?
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #33670867
DEAD_DimaZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> когда, например, админ конторы, которая купила продукт, позволяет
> устанавливать игрушки на сервере?

Дебилы есть не только среди системных администраторов, - не новость. Непонятно, как это связано с Вашим вопросом?

Да не знаю, что вы так привязались к этим внешним файлам - в конце концов не проблема хранить что так, что так... Проблема не в этом. А вообще, это (файлы внутри базы) есть часть "защиты от дурака", вы, думаю, тоже подобным вещам уделяете внимание в своих разработках.
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение файлов в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]