Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: файлы базе данных  (Прочитано 8931 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Okkkks
Помогающий

by
Offline Offline

« : 04-08-2010 10:04 » 

Ребят, помогите определиться... =))
Задача звучит следующим образом:
Нужно создать базу (1 таблица 2 поля), в которой будут храниться файлы (1-е поле - файлы чертежей, 2-е - рисунки этих самых чертежей). Предполагается некое приложение для работы с этой базой, которое будет копировать все эти файлы на локальный комп и обратно (база на сервере в локальной сети).

Гугл говорит, что хранить файла в базе не есть хорошо... что лучше хранить ссылки на файлы...
но что будет если я сохраню ссылки с некоторой локальной машины, выключу комп, а с другой машины попытаются его достать?..

Кроме того, идея копировать файлы туда сюда мне как-то не очень нравится...
Да и слабо представляю как файлы затолкать в базу... =((


Как бы вы решали такую задачу?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 04-08-2010 10:06 » 

Ян, файлы могут лежать в папке на сервере, а ссылки - быть относительными для этой папки Улыбаюсь
Записан

Okkkks
Помогающий

by
Offline Offline

« Ответ #2 : 04-08-2010 10:09 » 

Мммм а это пожалуй мысль... Спасибо =))
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 04-08-2010 10:13 » 

А файлы (чертежи и картинки) очень большие?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Okkkks
Помогающий

by
Offline Offline

« Ответ #4 : 04-08-2010 10:30 » 

не так чтоб очень  =)) пара сотен килограмм =))
ну т.е. картинки совсем маленькие, а чертежи чуть побольше. =)
« Последнее редактирование: 04-08-2010 10:34 от Okkkks » Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 04-08-2010 10:51 » 

blob - поля?
Записан

С уважением, Oldy.
Okkkks
Помогающий

by
Offline Offline

« Ответ #6 : 04-08-2010 10:54 » 

ну вот я об этом и спрашиваю... =) стоит совать туда файлы?  наверное и вправду лучше скинуть все картинки на сервер, а в базе только ссылки хранить... =))
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 04-08-2010 11:03 » 

Okkkks, тебе решать. Пара сотен кБ не так уж и много. Может их можно ещё и сжать zip-ом? Тогда суй их в БД.

Ссылочная версия обладает недостатками: надо постоянно следить за файлами, тем более, что это всегда пара; для пользователей требуется доп. разрешение на доступ к папке на сервере (одного доступа к БД будет уже недостаточно); бэкап всех этих файлов, я уже не говорю о восстановлении в случае "не дай Бог!"; ну и трансакции конечно.



Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Okkkks
Помогающий

by
Offline Offline

« Ответ #8 : 04-08-2010 11:06 » new

 =)) ну что ж буду решать =))
Спасибо огромное за помощь =))
Записан
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #9 : 07-08-2010 06:57 » 

для пользователей требуется доп. разрешение на доступ к папке на сервере (одного доступа к БД будет уже недостаточно);

расшаривать каталоги на сервере ни один нормальный админ не даст. в некоторых случаях (например, сегментированная сеть с security-зонами) - это может быть в принципе невозможно по требованиям безопасности, в то время как протащить через файрволлы "честный" коннект к БД на один порт - вполне реально.

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

во-вторых, практически все СУБД имеют возможность задавать собственные функции, например, в FireBird это UDF - User Defined Function, которые пишутся на любом языке, компилируются в dll, регистрируются в СУБД, и после этого они могут вызываться как обычные встроенные функции в селектах, хранимках и пр. т.е. вы пишете функцию, например, на паскале, которая по заданному пути считывает файл и возвращает его, например, как строку или xml с секцией CDATA. подключаете её к СУБД, и дальше запрос будет выглядеть, как select ID, udf_getfile (PATH) from table. дальше на клиентском приложении останется выковырять этот файл из его строкового представления.

поэтому можно хранить и ссылками, и без всяких шар. но у этого подхода есть один крайне жопный момент: ломается весь механизм реляционной СУБД. не только транзакции, а вообще всё на свете, начиная от обеспечения логической целостности и заканчивая механизмами кэширования чтения/записи. по сути, вы исскусственно выводите часть информации из под управления СУБД со всеми отсюда вытекающими. единственный резон, который может всё это перевесить - это размеры файлов: пихать в БД фото спутниковых сьёмок по 2-3 гига весом наверное, таки не стоит.

во всех остальных случаях - файлы лучше хранить в базе Улыбаюсь
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines