Имя: Пароль:
IT
Веб-мастеринг
вопрос по структуре данных для обработок
0 vde69
 
07.05.20
08:35
тема не совсем по 1с (в реальности это MySQL), но по сколько она носит не теоретический вопрос вполне можно обсуждать и на примере 1с

есть некий справочник в котором условно 100 000 элементов (то есть всякие циклы отпадают), каждый элемент этого справочника должен пройти некую цепочку действий, часть действий ручные, часть автоматические

пример выполнения последовательности
вручную поставить цену
вручную отнести к нескольким категориям
автоматически отправить предложение нескольким контрагентам
автоматически путем поиска в другой базе заполнить аналоги
вручную проверить корректность заполнения аналогов

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

А теперь вопрос - как организовать хранение состояний и всей последующей цепочки?

самый простой вариант добавить поле/поля в сам справочник, но это не очень хорошо, так как во первых частая перезапись справочника это плохо с точки зрения возможности потери информации (я работаю не НЕ транзакционном MySQL, да такое бывает)
второй вариант - сделать отдельную таблицу (регистр сведений) и туда писать план (что надо выполнить), вариант не очень хороший так как придется заморачиватся с реализацией сборщика мусора
третий вариант - сделать отдельную таблицу (регистр сведений) и туда писать все, все этапы и по каждому этапу результат, в данном варианте не очень хорошо - размер и проблемы с индексами, или необходимость делать дополнительные таблицы для справочника обработок (сейчас это просто строка)

короче каким путем идти?
может еще какие варианты?
1 Cyberhawk
 
07.05.20
08:59
Персистентная очередь с ручным контролем - наше все
2 Garykom
 
гуру
07.05.20
09:04
(0) Про MapReduce почитай и NoSQL базы - задачка прямо напрашивается на CouchDB
3 Garykom
 
гуру
07.05.20
09:05
(0) Если не хочется уходить с MySQL то https://habr.com/ru/post/47031/
4 tixis
 
07.05.20
09:05
Для 1с это на бизнес процесс смахивает
5 vde69
 
07.05.20
09:13
(3) интересный вариант, то есть можно в представлении объединить справочник и дополнительные таблицы
6 Garykom
 
гуру
07.05.20
09:14
(5) Угу и следующий шаг-представление делать на основе предыдущего шага-представления и доп. таблиц
7 Garykom
 
гуру
07.05.20
09:14
(6)+ Но в mysql конечно слегка урезанные view вот в oracle они просто офигенны
AdBlock убивает бесплатный контент. 1Сергей