|
4 / 4 / 1
Регистрация: 26.11.2009
Сообщений: 156
|
|
Система управления файлами17.02.2019, 19:43. Показов 1318. Ответов 6
Здравствуйте!
Попросили разработать небольшую систему документооборота. А именно, вот с чем ко мне обратились: есть 5 человек, каждый из них работает с отчетами pdf. Файлы могут быть связаны друг с другом. Каждый пользователь может изменять файлы. К файлу приписана еще информация, которая тоже может измениться. Реализовать поиск по названию файлов. В любой момент времени можно вернуться к любой версии файла и данных, связанный с ним. ОС - windows 7. Все данные, файлы должны находиться в пределах локальной сети, без доступа в Интернет. Тратить деньги они не хотят на покупку готового решения (если оно есть). Из этих требований на вскидку вижу такое решение: клиент-серверное приложение. Сервер - MVC приложение, по ролям дает доступ пользователям, записывает каждое их телодвижение в базу в виде логов. База находится на нескольких raid массивах с зеркалированием. Клиент - wpf приложение коннектится к серверу и передает запросы, авторизованного пользователя. Клиент и сервер взаимодействуют по REST API. Возникло много вопросов в части проектирования. 1) На сколько правильно движутся мои мысли? Может есть решение лучше? 2) Тратиться на технологии не хотят, поэтому какую бесплатную БД выбрать с возможность масштабирования и резервного копирования данных? 3) Как работать с файлами? Это совсем не понятно. Предположим сейчас 10 000 файлов по 1 мб - это уже 10Гб. Как вести их журналирование, и реализовать одновременный доступ к файлам так, чтобы пользователи работали всегда с актуальной версией. Записывать в бд файлы и их версии, как-то много будет данных. Читал про файловые серверы, но не представляю как они работают с windows и как устроена поддержка версий файлов. 4) Подозреваю, что в будущем захотят искать по содержимому файлов, тут нужен ElasticSearch? 5) Слышал про объединение в кластеры, но и тут тоже пробел в знаниях. Прошу поделитесь опытом и направьте на верные мысли. Спасибо!
0
|
|
| 17.02.2019, 19:43 | |
|
Ответы с готовыми решениями:
6
Система голосового управления Система управления версиями Система управления сайтом |
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 18.02.2019, 00:57 | |
|
Может использовать одну из готових систем контроля версий, например git?
Тогда вам достаточно будет настроить git сервер и написать прослойку, которая будет делать необходимые вам операции. По поводу работы с актуальной версией тут непонятно что имеется ввиду. Если одновременное групповое редактирование и последующее автоматическое слияние изменений, то слишком многого хотят. Такое только гугл докс умеет, а с pdf такое не сделать.
0
|
|
|
C# = ♫♪♫♪♪♫
57 / 56 / 18
Регистрация: 02.08.2014
Сообщений: 283
|
||||||
| 18.02.2019, 09:36 | ||||||
|
Информация какого плана ? Я б сериализацию юзал в xml Добавлено через 6 минут
0
|
||||||
|
4 / 4 / 1
Регистрация: 26.11.2009
Сообщений: 156
|
||||
| 18.02.2019, 23:12 [ТС] | ||||
|
Связаны так: Отчет 1.pdf ссылается на параграф 2.1.3 файла Отчет 2.pdf. Связь, указывается в виде ссылок на файлы в БД, например. Sanek32, Ваше предложение крутое, если сервер на одной машине был и всегда будет. Предположим накрылся HDD, если есть бекапы, или тот же raid все гуд). А если нужно перенести сервер на другую машину. Или взять с собой на ноуте всю базу данных с файлами в бизнесс путешествие. Тогда нужно вновь повторять весь этап настройки. А MVC сервер развернуть на IIS и нет проблем, т.к. вся логика уже описана. В общем, под информацией понимаю еще одну базу, в которой какие-то таблицы ссылающиеся на файлы отчетов. Пока представлений о бизнесс-логике мало, т.к. ее по сути и нет. Есть хотелки, которые хочу перевести на вменяемый язык требований
0
|
||||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|||
| 19.02.2019, 01:14 | |||
|
Если версий файла много, а изменений в них мало, то получите значительную экономию места т.к. версии в git хранятся в виде дельты изменений. Дополнительную информацию о связях можно хранить рядом в каком-нибудь файле метаданных используя id коммитов в качестве ссылок на другие файлы. Минус этого дела - недостаточная гибкость если будут возникать новые хотелки. Но это так, просто концепт который может и не подойти. Сформируйте для начала контракт, т.е. список всех функций которые должна поддерживать система, а дальше уже смотрите насколько подходят разные форматы хранилища под эти требования.
1
|
|||
|
C# = ♫♪♫♪♪♫
57 / 56 / 18
Регистрация: 02.08.2014
Сообщений: 283
|
|||||
| 19.02.2019, 09:48 | |||||
|
Предлагаю сохранять файлы с именем {GUID}.PDF. А в БД хранить метаданные для поиска.
1
|
|||||
| 19.02.2019, 09:48 | |
|
Помогаю со студенческими работами здесь
7
Система управления версиями Система управления боем Система управления счетами клиентов банка Система управления счетами клиентов в банке Файловая система и система управления вводом-выводом в ОС Linux Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|