powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Задача показалась интересной
17 сообщений из 17, страница 1 из 1
Задача показалась интересной
    #39106402
freeElk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!
Возникла задача.

Дано список документов и адресатов.
Каждый документ должен быть отправлен по email каждому адресату один раз.
Некоторые документы уже отправлены, о чем есть запись в журнале.
Необходимо отправить остальные.
При этом необходимо использовать минимальное количество писем.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106416
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, раз тебе эта лаба кажется интересной - поздравляю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106419
freeElk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

это не лаба. на самом деле, это реальная задача.
у меня есть живые бухгалтера и накладные )))
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106423
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeElkэто не лаба. на самом деле, это реальная задача.
у меня есть живые бухгалтера и накладные )))
Живые бухгалтера и накладные не рассылают все документы всем получателям. И уж тем более у
них не стоит требование делать это "минимальным количеством писем".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106440
freeElk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Почему же. специально для тебя, конкретика.
Смотри, есть список бухгалтеров кредиторской группы, которые должны проверять входящие рассчеты корректировок от контрагентов перед их регистрацией в налоговой.
При этом точно нельзя сказать, какие бухгалтера сегодня работают с тем или иным контрагентом. Поэтому рассылка идет всем ответственным бухгалтерам, а отвечает тот, кто сегодня занимается с данным контрагентом.
Документы выгружаются из регистрационной системы по мере поступления, скажем один раз в день и рассылаются. Сейчас это делается вручную.
Если ты считаешь данный процесс не идеальным, советуй.
Я тоже не считаю, но се ля ви.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106462
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeElkу меня есть живые бухгалтера и накладные )))
Тогда это работа бухгалтера. И не стоит у человека отнимать его кусок хлеба.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106464
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeElkконкретика.
Как-то эта конкретика сильно отличается от изначальной постановки. Если рассылка идёт по
внутренней электронной почте, то не может быть получателя, которому какой-то документ не
ушёл: он либо отправлен всем, либо вообще не отправлен. Задача минимизации количества
писем тоже не стоит: один документ - одно письмо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106485
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
for c in (
  select r.id, r.email, listagg(d.id,',') within group (order by d.id) d
  from doc d, recipient r
  where not exists (select null from doc_send s where s.doc = d.id and s.recipient = r.id)
  group by r.id, r.email
) loop
    utl_mail.send(sender     => 'bot',
                  recipients => c.email,
                  subject    => 'docs',
                  message    => c.d);
  insert into doc_send (doc, recipient)
    select t.column_value, c.id
    from table(split_strings(c.d,','));
end loop;


split_strings предлагаю написать самостоятельно. Заполнение doc_send можно перенести по месту обработки, а не отправки.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106502
freeElk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Да, ты прав в том, что я несколько ультрировал ситуацию, превратив ее в академическую.
Просто стало интересно, как ее решить именно такую правильно с точки зрения теории.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106508
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeElkстало интересно, как ее решить именно такую правильно с точки зрения теории.

Согласно ТЗ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106545
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
freeElkДа, ты прав в том, что я несколько ультрировал ситуацию, превратив ее в академическую.
Просто стало интересно, как ее решить именно такую правильно с точки зрения теории.
Да как бы очевидно. В конкретной постановке - послать одно письмо, список адресатов = "все бухгалтера", список аттачей = "все файлы". В общей - если считается, что каждый документ должен быть послан какому-то своему списку получателей - составить матрицу "что кому", редуцировать в ней совпадающие строки и совпадающие столбцы, посмотреть, чего меньше - строк или столбцов - и соответственно отправить письмом либо отдельно каждую строку (этот документ всем подписанным получателям) либо каждый столбец (этому получателю все подписанные документы).
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106574
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer В общей - если считается, что каждый документ должен быть послан какому-то своему списку получателей - составить матрицу "что кому", редуцировать в ней совпадающие строки и совпадающие столбцы, посмотреть, чего меньше - строк или столбцов - и соответственно отправить письмом либо отдельно каждую строку (этот документ всем подписанным получателям) либо каждый столбец (этому получателю все подписанные документы).

Это не даст минимума писем (непонятно кому и зачем может понадобиться экономить на кол-ве email-ов, но постановка есть постановка).
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106592
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЭто не даст минимума писем
У меня тоже было такое впечатление, но прикинув варианты, я не смог его обосновать. Дальше можно собрать ещё большие "суперпакеты n*m", но за счёт мелких остатков "васе нужно дослать пару документов" у меня выходило то же общее количество. Всё, конечно, в уме за пол-минуты.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106635
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКот МатроскинЭто не даст минимума писем
У меня тоже было такое впечатление, но прикинув варианты, я не смог его обосновать. Дальше можно собрать ещё большие "суперпакеты n*m", но за счёт мелких остатков "васе нужно дослать пару документов" у меня выходило то же общее количество. Всё, конечно, в уме за пол-минуты.

Хм, да, мой кейс дает меньше писем, но один и тот же документ одному и тому же получателю доходит несколько раз.
Так что исходную задачу с ограничениями Ваш алгоритм, наверно, решает.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106691
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин, да, мне тоже кажется, что дальнейшее уменьшение количества писем может идти только за счёт избыточности - либо слать документ тому, кому он не нужен, либо что-то подобное.
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39106700
freeElk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В реальной ситуации я не заморачивался уменьшением почтового траффика.
Посылаю каждому бухгалтеру отдельное письмо со списком документов.
Вариант одно письмо - один документ имеет свои плюсы. Но увеличивает время обработки писем бухгалтером.

Я чувствую, что подобные оптимизации описаны теоретически.
Но это больше академический вопрос.

послать одно письмо, список адресатов = "все бухгалтера", список аттачей = "все файлы".

Таблица документов всегда может содержать как отправленные, так и неотправленные документы. Она пополняется другим процессом. Я вышел из ситуации при помощи журнала отправленных. Может я неправильно вижу задачу?
...
Рейтинг: 0 / 0
Задача показалась интересной
    #39108799
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже отправляли тут
http://www.sql.ru/forum/1182894/spor-pro-ocherednik
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Задача показалась интересной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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