Схема БД для "документооборота"
Добрый день, господа.
Проектируется некое подобие узкоспециализированной системы корпоративного "документооборота" (в кавычках - потому что уровня LN и прочих не требуется).
Забуксовал на этапе проектирования вот какой её части.
Описание бизнес-процессов и терминология:
В рамках системы мы имеем дело с "задачей", "исполнителем" и "постановщиком задачи".
Базовый функционал workflow уже реализован в виде FSM.
В течение жизненного процесса задача перемещается от исполнителя к исполнителю согласно таблице переходов FSM, но возникает проблема, что после некоторых состояний (например, работа закончена - необходимо вернуть к постановщику задачи; или анализ задачи окончен - нужно также вернуть к постановщику, который потом назначит её кому-то на исполнение).
Таким образом задача может быть: распределена с изменением статуса, либо отредирекчена (без изменения статуса). А после выполнения она должна вернуться назад.
Вопрос: какая структура позволит удобно хранить этот самый "путь", по которому легко можно будет найти постановщика/исполнителя, которому после смены статуса задача должна вернуться?
Пример workflow, из обсуждения в аське:
Добрый день, господа.
Проектируется некое подобие узкоспециализированной системы корпоративного "документооборота" (в кавычках - потому что уровня LN и прочих не требуется).
Забуксовал на этапе проектирования вот какой её части.
Описание бизнес-процессов и терминология:
В рамках системы мы имеем дело с "задачей", "исполнителем" и "постановщиком задачи".
Базовый функционал workflow уже реализован в виде FSM.
В течение жизненного процесса задача перемещается от исполнителя к исполнителю согласно таблице переходов FSM, но возникает проблема, что после некоторых состояний (например, работа закончена - необходимо вернуть к постановщику задачи; или анализ задачи окончен - нужно также вернуть к постановщику, который потом назначит её кому-то на исполнение).
Таким образом задача может быть: распределена с изменением статуса, либо отредирекчена (без изменения статуса). А после выполнения она должна вернуться назад.
Вопрос: какая структура позволит удобно хранить этот самый "путь", по которому легко можно будет найти постановщика/исполнителя, которому после смены статуса задача должна вернуться?
Пример workflow, из обсуждения в аське:
Код:
zerkms, 03.11.2010 9:50:43:
тогда пример
zerkms, 9:50:51:
есть постановщик П
zerkms, 9:51:17:
он формулирует задачу, оформляет её в виде "тикета" и отправляет на исполнение И1, это у нас очень главный начальник
zerkms, 9:51:25:
задача сейчас в статусе "новая"
zerkms, 9:51:45:
И1, по причине своей важности, сам ей заниматься не будет - а тупо редиректит её на И2, начальника подразделения, к примеру
zerkms, 9:51:52:
статус - по-прежнему "новая"
zerkms, 9:52:16:
И2, понимая, что задача непростая и с нахрапу не решится - решает её для начала проанализировать (назначив соответствующий статус)
zerkms, 9:52:22:
и распределяет её на начальника отдела И3
zerkms, 9:52:26:
статус (анализ)
zerkms, 9:52:43:
И3 тоже самому недосук делать это, и он отправляет её мне, И4
zerkms, 9:52:46:
статус - анализ
zerkms, 9:52:50:
я проанализировал
zerkms, 9:52:58:
она вернулась от меня И3, на акцепт
zerkms, 9:53:09:
он или говорит нет и отдаёт её снова мне (кому-то ещё)
zerkms, 9:53:18:
или говорит "ок" и она возвращается И2
zerkms, 9:53:31:
вот как раз момент ок/не ок я и не могу организовать в схеме