поле BLOB vs. char для word документа

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

поле BLOB vs. char для word документа

Сообщение Platon_Elenin » 04 апр 2007, 05:56

Подскажите, пожалуйста как лучше сделать?

Приложение работает с БД и основано на просмотре и контроле документов. Как лучше сделать - сохранять в поле BLOB весь текст doc-файла или же в поле сhar сохранять ссылку на файл?

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Re: поле BLOB vs. char для word документа

Сообщение SAMZ » 04 апр 2007, 06:39

Мы в подобных случаях храним в блоб полях контент документа. Это может быть doc файл, tiff файл, pdf - неважно. Но это лучше, чем хранить эту информацию в файловой системе. Это наше мнение, конечно, но при построении электронного архива судебных решений в первой версии образы документов мы хранили в файловой системе, указывая в БД путь к документу. Достаточно быстро от этого отказались

Platon_Elenin
Сообщения: 8
Зарегистрирован: 10 янв 2007, 11:55

Сообщение Platon_Elenin » 04 апр 2007, 08:06

А почему отказались, что не устроило?

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 04 апр 2007, 08:43

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

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 04 апр 2007, 11:15

Platon_Elenin писал(а):А почему отказались, что не устроило?
Ну, CyberMax, уже ответил. В любом случае хранение непосредственно в файловой системе - это менее надежный и менее защищенный вариант. Немаловажно и количество хранимых единиц информации. У нас на сегодняшний день более 200 тысяч документов. Такое количество файлов даже для современных ОС - перегрузка для файловой сисиемы. При хранении в БД все это выглядит намного комфортнее и, если хотите, гигиеничней.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 апр 2007, 12:59

Всё имеет свои разумные пределы.
Мы храним сертификаты (картинки) не в базе, а по путям, потому как их более 1.2 млн. штук, в общей сложности около 45Гб кажись.
Так что гигиена гигиеной, а таким куском можно и подавиться.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 04 апр 2007, 13:38

WildSery писал(а):Всё имеет свои разумные пределы.
Мы храним сертификаты (картинки) не в базе, а по путям, потому как их более 1.2 млн. штук, в общей сложности около 45Гб кажись.
Так что гигиена гигиеной, а таким куском можно и подавиться.
ИМХО - разумный предел - это размер хранимого документа, можно конечно и фильмы в базе хранить, но потом на клиента это тащить ....

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 апр 2007, 13:41

stix-s писал(а):ИМХО - разумный предел - это размер хранимого документа
И какой же размер разумен?
В моей базе, как легко подсчитать, средний размер документа 40 килобайт.
А на клиента тащить всё равно приходится, только с другого сервера, правда.

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 04 апр 2007, 13:42

WildSery писал(а):...потому как их более 1.2 млн. штук, в общей сложности около 45Гб кажись.
Так что гигиена гигиеной, а таким куском можно и подавиться.
Я отмечал, что в нашей системе количество хранимых документов превышает 200 тыс единиц. Причем документы многостраничные и в сумме это более 1.2 млн. страниц формата А4. Все хранится в формате tiff. По объему это чуть больше 60 Гбт. Пока не подавились, и уверен, что это нам не грозит.
Есть, правда, одна небольшая хитрость, образы документов мы храним в отдельных БАЗАХ ДАННЫХ. На каждый год каждого месяца создается своя база. При наших темпах закладки документов месячная БД разарастается до примерно 1..1,2 Гб. Это нас вполне устраивает. При такой организации работы по истечении текущего месяца БД переводится в режим ReadOnly (редактировать БД прошедших месяцев никто и никогда не будет). Резервное копирование выполняется только для текущей БД. В основной БД (делопроизводство), естественно хранится информация о каждом документе, включая дату его закладки в архив. По этой дате легко определяется БД хранения образа этого документа. Никогда никаких проблем это не вызывало.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 апр 2007, 13:46

Что храните в tiff - не отмечал :wink:
Несколько баз... Насколько это удобно, и в чём отличие от хранения в отдельном каталоге?
Мне вот не видится разницы, забэкапить одну папку "2006" с вложениями или базу, которая кстати и занимает больше места, и сервер FB дополнительно напрягает обработкой того, с чем и ОС замечательно справится.
Уж про репликацию вообще молчу.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 04 апр 2007, 14:02

WildSery писал(а):
stix-s писал(а):ИМХО - разумный предел - это размер хранимого документа
И какой же размер разумен?
В моей базе, как легко подсчитать, средний размер документа 40 килобайт.
Тут уж на вкус и цвет :) в твоем случае я в базе бы хранил.
WildSery писал(а): А на клиента тащить всё равно приходится, только с другого сервера, правда.
Придется, если чел уверен, что ему это надо, тут уж никуда не денешься - либо из базы тянуть, либо с файл-сервера.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 апр 2007, 14:05

stix-s писал(а):Тут уж на вкус и цвет :) в твоем случае я в базе бы хранил.
Если как SAMZ в отдельной - тут ещё можно подумать.
В этой же - нет. Один бэкап-рестор чего стоит. А репликацию данных даже представить страшно.
Если файлы мы на компашках перекидываем, то в базе... Гм.
Сделать-то дополнительную оффлайновую репликацию возможно, но гемор, да и выливки-заливки таких данных из базы в базу тоже не нравятся.

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 04 апр 2007, 14:07

WildSery писал(а):Что храните в tiff - не отмечал :wink:
Несколько баз... Насколько это удобно, и в чём отличие от хранения в отдельном каталоге?
Мне вот не видится разницы, забэкапить одну папку "2006" с вложениями или базу, которая кстати и занимает больше места, и сервер FB дополнительно напрягает обработкой того, с чем и ОС замечательно справится.
Уж про репликацию вообще молчу.
Не думаю, что стоит продолжать полемику в этом направлении. Это точно про попа, попадью и попову дочку. Чего совсем не понял, при чем здесь репликация.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 04 апр 2007, 14:36

WildSery писал(а):
stix-s писал(а):Тут уж на вкус и цвет :) в твоем случае я в базе бы хранил.
Если как SAMZ в отдельной - тут ещё можно подумать.
В этой же - нет. Один бэкап-рестор чего стоит. А репликацию данных даже представить страшно.
Если файлы мы на компашках перекидываем, то в базе... Гм.
Сделать-то дополнительную оффлайновую репликацию возможно, но гемор, да и выливки-заливки таких данных из базы в базу тоже не нравятся.
ну, скажем к примеру сливать бэкап для переноса на мобильный диск не проблема, все зависит от конкретных условий - тебе вот к примеру репликация на эту базу нужна, а мне она вовсе не надь к примеру

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 апр 2007, 14:53

SAMZ писал(а):Чего совсем не понял, при чем здесь репликация.
Как это при чём? А в дочернее предприятие ты эти базы как сливать будешь? Винтом бандеролью?

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 04 апр 2007, 15:35

WildSery писал(а):
SAMZ писал(а):Чего совсем не понял, при чем здесь репликация.
Как это при чём? А в дочернее предприятие ты эти базы как сливать будешь? Винтом бандеролью?
ну дык ежели ны файл-сервере картинки хранить, то на дочернюю контору однако тоже придется бандерольки слать :)

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 апр 2007, 17:38

stix-s писал(а):ну дык ежели ны файл-сервере картинки хранить, то на дочернюю контору однако тоже придется бандерольки слать :)
Только новые и изменённые файлы. Влазит на 1 DVD.
А те что нужны срочно - выкачиваются с FTP, благо путь и название уже известны из данных самой базы.

Ответить