powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте где хранить сканы
30 сообщений из 30, показаны все 2 страниц
Посоветуйте где хранить сканы
    #38810661
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руководство поставило задачу:
Сосканированы документы для архивации. Сейчас лежат на севере в расшаренном ресурсе. Ранее была написана программа учета этих же документов: нужно доработать программу, чтобы была возможность просмотреть или распечатать сканы. Так вот собственно вопрос ко всезнающему ALLу: посоветуйте как лучше, на ваш взгляд, хранить:
Вариант 1: Хранить сканы на сервере как есть сейчас, а в базе хранить ссылки на документы.
Вариант 2: Хранить сканы в базе данных. Для этого скорее всего нужно будет поднимать второй сервер, поскольку большой объем.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38810749
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В разных серверах есть разные специальные средства для решения Вашей задачи - имеет смысл посмотреть, что Вам предлагает Ваш сервер.

Если эти специальные средства не рассматривать, оба Ваши способа имеют свои плюсы и минусы.
Было много обсуждений, ищите по форуму что нибудь типа "хранение файлов в базе"
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38810831
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант 1. В вашем случае - без альтернативы.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38810899
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у нас в базе всё хранится. решили, что надёжней так
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38810958
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Вариант 1. В вашем случае - без альтернативы.+1. И проще всего.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38810972
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75Вариант 2: Хранить сканы в базе данных. Для этого скорее всего нужно будет поднимать второй сервер, поскольку большой объем.
Задайте себе вопрос: какие актуальные задачи будут (хорошо, удобно) решены таким образом и (плохо, неудобно) решены первым вариантом? При отсутствии разумного ответа задайте себе второй вопрос: "И нафига тогда этот геморрой?"
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38810994
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75 Для этого скорее всего нужно будет поднимать второй сервер, поскольку большой объем. С этого момента поподробнее, какой второй сервер, чем он будет заниматся и т.д. Может не второй сервер, а второй экземпляр/базу?

Я полагаю определяющим будет возможность/необходимость доступа к сканам помимо вашего приложения. То есть будет ли ваше приложение еще одним клиентом файлового сервера или оно будет все_в_одном.
Моменты на которые надо обратить внимание
1
В первом варианте - насколько критично приложение к битым ссылкам, и к неотиндексированным сканам (файл есть, пути в базе нет), необходимо будет разработать механизм отлова и исправления такой ситуации.

2
Насколько сложной является управление правами? В первом варианте права придется раздавать два раза - на уровне файлового сервера и в базе.

3
Стратегия бакапа - как долго/как часто все хозяйство будет бакапится и восстанавливаться, как обеспечиватся синхронизация (см пункт первый)
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38811198
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы.
По сути меня терзают те же сомнения, что тут все написали.
SERG1257С этого момента поподробнее, какой второй сервер, чем он будет заниматся и т.д. Может не второй сервер, а второй экземпляр/базу?
Сейчас в сети работает один SQL сервер, на нем крутится несколько баз в том числе программка по учету архива, проблема в малом объеме диска: все сканы туда не влезут. Кроме того машина уже не молода, если туда будут грузить сканы, думаю это не в лучшую сторону повлияет на быстродействие других программ. Поэтому под эту задачу, (под архив) куплен (слава богу) именно сервер: сейчас на нем пока только операционка, 3 HDD: на одном система, 2 в зеркале. Я поэтому и задаю этот вопрос, решаю что же там будет: в 1 варианте файловый сервер, в 2-м - SQL сервер (скорее всего MSSQL Express).
SERG1257Я полагаю определяющим будет возможность/необходимость доступа к сканам помимо вашего приложения. То есть будет ли ваше приложение еще одним клиентом файлового сервера или оно будет все_в_одном.
Вопрос дополнительного доступа пока не возник, но как знать...
SERG1257Моменты на которые надо обратить внимание
1
В первом варианте - насколько критично приложение к битым ссылкам, и к неотиндексированным сканам (файл есть, пути в базе нет), необходимо будет разработать механизм отлова и исправления такой ситуации.
Я думаю это некритично... При современных объемах что там какие-то плюс-минус 100MB. А в перспективе написать программку для отлова битых ссылок - задача для первокурсника.
SERG12572
Насколько сложной является управление правами? В первом варианте права придется раздавать два раза - на уровне файлового сервера и в базе.
Сейчас в домене для этих юзеров выделена группа, включение в группу предоставляет доступ в базу, но да, этой группе нужно будет еще давать доступ к шаре. Я думаю эту неприятность мы переживем.
SERG12573
Стратегия бакапа - как долго/как часто все хозяйство будет бакапится и восстанавливаться, как обеспечиватся синхронизация (см пункт первый)
Если будет файловый сервер - скорее всего ежедневно robocopy на backup-сервер. Если будет SQL, тогда backup средствами сервера
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38811216
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда делайте filetable
http://msdn.microsoft.com/ru-ru/library/ff929144(v=sql.110).aspx
и не парьтесь
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38815842
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пару дней курил мануалы... Что-то все не так...
Потом наконец-то понял: FileTable в SQL2012 а у меня SQL2008 потому что MS Server 2003.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38816889
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75Я думаю это некритично... При современных объемах что там какие-то плюс-минус 100MB.
Дело не в объеме, а в том что будет, если вы потеряете ссылку на какой-нибудь важный документ.

ALF75А в перспективе написать программку для отлова битых ссылок - задача для первокурсника.
Оптимистично! Если потеряете ссылку, восстановить ее будет непросто
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38816890
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Вариант 1. В вашем случае - без альтернативы.
не факт
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817001
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75Пару дней курил мануалы... Что-то все не так...
Потом наконец-то понял: FileTable в SQL2012 а у меня SQL2008 потому что MS Server 2003. Посмотрите на FileStream .
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817146
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracs,
Смотрел, скорее всего нужен будет, в том числе и файловый доступ.


Короче всем спасибо за участие, переписываю программку, буду хранить в БД ссылки на файлы.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817165
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoffmanОптимистично! Если потеряете ссылку, восстановить ее будет непросто

В том контексте имелось в виду: файл есть, а ссылки в БД нет. В смысле еще не привязали, а поскольку еще не привязали, то и терять еще нечего.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817168
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Goffman,

А может озвучите Ваше видение решения задачи?
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817315
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75В том контексте имелось в виду: файл есть, а ссылки в БД нет. В смысле еще не привязали, а поскольку еще не привязали, то и терять еще нечего.
Что такое битая ссылка - пример,
1. вы добавили в систему документ.
2. Допустим сам файл располагается на ФС, а метаданные+ссылка в БД.
3. Затем через какое-то время кто-нибудь заходит на ФС и ручками удаляет файл.
4. В итоге система считает что документ существует, но файла уже нет, остается только битая ссылка.
Для этой проблемы не так просто найти надежное решение, как кажется, особенно для двухзвенок.

По поводу, своего видения, в принципе оно у вас озвучено в первом посте, вариант 2.
У нас реализована похожая СХД на BLOB (Oracle), работает 3 года, полет нормальный.
С чем столкнулись - что такой способ требует больше дискового пространства.
Если интересуют какие-то конкретные нюансы - обращайтесь
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817334
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goffman3. Затем через какое-то время кто-нибудь заходит на ФС и ручками удаляет файл.
4. В итоге система считает что документ существует, но файла уже нет, остается только битая ссылка.
Для этой проблемы не так просто найти надежное решение, как кажется, особенно для двухзвенок.

Сложного примерно 0 - ночью система загрузит список всех файлов из ФС, найдет несоответствие, поднимет алерт и завтра файл восстановят из файлового бекапа.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38817436
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> не факт

Не просто факт, а факт безальтернативный. Если вы этого не понимаете, - оставайтесь в своей песочнице.

> 3. Затем через какое-то время кто-нибудь заходит на ФС и ручками удаляет файл.

Дружище, никто просто так никуда не заходит и ничего не удаляет. Нет у реальных пользователей доступа к файловой системе.

Чем дальше, тем больше ваша файлопомойка будет требовать ресурсов. Без малейших оснований для этого. Заставить бы вас из своего кармана оплачивать ваши кривые поделки, - у песни были бы совсем другие слова и мотив.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818004
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoffmanЧто такое битая ссылка - пример,
1. вы добавили в систему документ.
2. Допустим сам файл располагается на ФС, а метаданные+ссылка в БД.
3. Затем через какое-то время кто-нибудь заходит на ФС и ручками удаляет файл.
4. В итоге система считает что документ существует, но файла уже нет, остается только битая ссылка.
Для этой проблемы не так просто найти надежное решение, как кажется, особенно для двухзвенок.

Там же было сказано:
" В том контексте имелось в виду..."
А что такое битая ссылка, спасибо конечно, я имею представление.
GoffmanПо поводу, своего видения, в принципе оно у вас озвучено в первом посте, вариант 2.
У нас реализована похожая СХД на BLOB (Oracle), работает 3 года, полет нормальный.
С чем столкнулись - что такой способ требует больше дискового пространства.
Если интересуют какие-то конкретные нюансы - обращайтесь
Примерно ради этого я и начинал топик... на момент старта топика, я сам склонялся к варианту хранения в БД: это же круто, ну там БЛОБы, Stream'ы, крутизна, а я же крутой программист, пальцы веером. Однако на данный момент товарисчи коллеги меня переубедили и я склоняюсь к варианту хранения в файловой системе в той или иной форме.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818275
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинСложного примерно 0 - ночью система загрузит список всех файлов из ФС, найдет несоответствие, поднимет алерт и завтра файл восстановят из файлового бекапа.
Если этого достаточно, то хорошо, но такой подход все равно не исключает человеческого, фактора.
Если например админ в отпуске на месяц, а ио забудет посмотреть ошибки? Где потом брать этот файл?
Или например файл менялся в течение дня два раза, а потом его удалили с ФС? Вы из бэкапа восстановите старый файл, и даже знать об этом не будете.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818324
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Не просто факт, а факт безальтернативный. Если вы этого не понимаете, - оставайтесь в своей песочнице.
Ага, главное уверенность. Альтернатива есть всегда, если вы этого не понимаете - оставайтесь в своей песочнице.


авторДружище, никто просто так никуда не заходит и ничего не удаляет. Нет у реальных пользователей доступа к файловой системе.
Дружище, а как же тогда файл попадает на клиента?



авторЧем дальше, тем больше ваша файлопомойка будет требовать ресурсов.Без малейших оснований для этого. Заставить бы вас из своего кармана оплачивать ваши кривые поделки, - у песни были бы совсем другие слова и мотив.
Демагогия, любая СХД со временем требует больше ресурсов. Если это нет так - значит системой никто не пользуется.
Насчет оплаты, я так думаю вы свои поделки тоже не из своего кармана оплачиваете, и, судя по вашей манере раздавать диагнозы, боюсь что поделки не самые лучшие.
Вообще нужно понимать на чем экономишь, экономия на спичках при внедрении - может дорого обойтись на этапе эксплуатации.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818336
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoffmanЕсли например админ в отпуске на месяц, а ио забудет посмотреть ошибки? Где потом брать этот файл?

Это не очень конструктивный разговор.
А что будет если админ в отпуске на месяц, а ио забудет посмотреть ошибки при бекапе Вашей БД?

Вы хотите построить систему, которая работает независимо от разгильдяйства всех окружающих ее сотрудников (пользователи удаляют нужные файлы, админы не смотрят ошибки, etc.)?
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818337
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75 я сам склонялся к варианту хранения в БД: это же круто, ну там БЛОБы, Stream'ы, крутизна, а я же крутой программист, пальцы веером. Однако на данный момент товарисчи коллеги меня переубедили и я склоняюсь к варианту хранения в файловой системе в той или иной форме....
nuff said, как говорится...
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818364
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинВы хотите построить систему, которая работает независимо от разгильдяйства всех окружающих ее сотрудников (пользователи удаляют нужные файлы, админы не смотрят ошибки, etc.)?

Да в той мере, в какой это возможно.
Зачем складывать на админов лишнюю нагрузку и не свойственную им ответственность, если можно обойтись без этого.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818610
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75...
Примерно ради этого я и начинал топик... на момент старта топика, я сам склонялся к варианту хранения в БД: это же круто, ну там БЛОБы, Stream'ы, крутизна, а я же крутой программист, пальцы веером. Однако на данный момент товарисчи коллеги меня переубедили и я склоняюсь к варианту хранения в файловой системе в той или иной форме.
У всего есть плюсы и минусы.

Для одних задач и обстановки - хранение в БД несет больше плюсов
Для других задач и обстановке - может быть наоборот

Недавно была похожая тема, по поводу БД / не в БД долго спорили. Но это демагогия. В одних случаях, по сумме плюсов и минусов, лучше БД, в других случаях, внешние файлы.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818622
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goffman...
плюсуюсь

в www.kamis.ru в результате тоже пришли к хранению БД (хотя можно и на диске). Хотя, для этого, как минимум, мне пришлось дофига кодить на C, что бы сделать нормальный просмоторщик изображений работающий через Net80.

Когда сылки на файлы, то все проще. Запустил какой нибудь просмоторщик, дал ему имя файла )))
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38819270
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevКогда сылки на файлы, то все проще. Запустил какой нибудь просмоторщик, дал ему имя файла )))
Я тут посмотрел чего они понасканировали...
Там и jpg, и bmp, и pdf, и неизвестно чего еще будет... Короче у меня та самая ситуация, когда надо проще. Подумать страшно что нужно накодировать, чтобы
Поэтому добавил в программке ShellExecute и вот оно счастье. Если не знает при помощи какой программы открывать - показывает виндовское окно "Открыть с помощью..."

По поводу хранения БД - конечно надежнее, кто спорит. А по поводу потери файлов/ссылок - у меня такая ситуация, что это архив, потерянный файл (если все-таки умудрятся потерять) пересканируют заново. Тем более восстанавливать придется тем же кто теряет (полный доступ только у них), поэтому 10 раз подумают терять, или не терять.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38820263
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там и jpg, и bmp, и pdf, и неизвестно чего еще будет...
1 - устанавливаете программу logparser.exe
2 - создаете батник с таким содержанием
Код: sql
1.
"C:\Program Files\Log Parser 2.2\LogParser.exe" -i:FS -Recurse:-1 -o:SQL -server:192.168.1.10,1433 -database:ScanIndex -driver:"SQL Server" -createTable:ON -username:ScanUsr -password:"123456789" file:C:\Robots\ScanIndexer\ScanIndexer.sql


В батнике укажите свой MS SQL сервер,базу данных, пользователя и пароль.
Соответственно, создайте на сервере заранее пустую базу данных ( ScanIndex ) и пользователя ( ScanUsr ) к ней.

3 - создайте файл SQL с таким содержимым
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT 
    OUT_ROW_NUMBER()   as CSNum,
    COMPUTER_NAME()    as CompName,
	SYSTEM_TIMESTAMP() as CheckedDT,
    HASHMD5_FILE(Path) as Hash,
	EXTRACT_PREFIX(Path,0,':\\') as Drive,
    EXTRACT_PATH(Path) as Dir, 
	Name,
	EXTRACT_EXTENSION(Path) as Ext,
	Size,
	Attributes,CreationTime,LastAccessTime,LastWriteTime
INTO Scans
FROM C:\*.jpg, C:\*.bmp, C:\*.pdf
where 
    size>0 


В запросе отредактируйте имя диска и типы файлов, которые интересуют.
В батнике (из пунката 2) должен быть прописан путь к этому файлу.( file:C:\Robots\ScanIndexer\ScanIndexer.sql )

Таблица " Scans " будет создана в базе ( ScanIndex ) - автоматически при сканировании,
а если таблица уже есть, то она будет дополнена.

После запуска батника у Вас на сервере в таблице Scans будут MD5 файлов, и пути к ним.

3 - Теперь можно набросать небольшой VBS скрипт, который будет отслеживать изменения в папке сканов.
Первые строки такого скрипта могут быть такими:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
dim strAction, 	EDT, msg
strAction ="?" 
strComputer = "."
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMv2") 
  Set objEvents = objWMIService.ExecNotificationQuery ("SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Drive='" & control_disk &"' AND TargetInstance.Path='" & control_dir & "'")
Do While(True)
    Set objReceivedEvent = objEvents.NextEvent
	strAction =objReceivedEvent.Path_.Class  
	
	dateTime.SetFileTime objReceivedEvent.TIME_CREATED, false
    EDT=dateTime.GetVarDate()
	
	Select Case objReceivedEvent.Path_.Class
        Case "__InstanceCreationEvent": strAction = "Создан:" 
        Case "__InstanceDeletionEvent": strAction = "Удален:" 
        Case "__InstanceModificationEvent": strAction = "Изменен:" 
    End Select
	msg = """" & EDT &""",""" & strAction & """,""" & objReceivedEvent.TargetInstance.Name & """"
   Log msg
  'Здесь вызываем батник для пересканирования'
Loop


4 - Чтобы не пересканировать весь каталог из-за одного нового файла - можно на лету генерить новый SQL файл
( ScanIndexer.sql ) в котором будет указано только имя и путь нового файла.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38820671
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мы картинки пользователей, и видео пользователей и другие файлы, что заливают пользователи, храним в файловой системе. В базе (MS SQL Server) хранятся только ссылки.

Полёт нормальный вот уже 8 лет :) На данный момент 4500000 пользователей.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте где хранить сканы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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