Мне нужны предложения по разработке таблиц и записей в Oracle для обработки бизнес-процессов, состояния и времени отчетов между состояниями.
У нас есть таблица транзакций, в которой записан идентификатор записи с серийным номером, идентификатор документа, дата и время, а также статус. Статусы отражают, где находится документ в процессе утверждения, отражая задачу, которую необходимо выполнить с документом. Имеется до 40 статусов, показывающих, кто должен утверждать, и какова задача, которая выполняется. Таким образом, есть заголовок документа или родительская запись, а также несколько записей статуса в качестве дочерних записей.
Задача состоит в том, чтобы проанализировать, где находятся узкие места, какие задачи занимают больше всего времени и т. Д.
Из бизнес-задачи задание получает документ, у нас есть дата и время, когда это происходит. У нас нет даты и времени выпуска или завершения текущей задачи. Все, что у нас есть, это дата и время начала следующего задания. Обратите внимание, что документ может иметь только один статус за раз.
По причинам, по которым я не буду вдаваться, мы не можем использовать ETL для создания даты и времени окончания статуса, хотя я думаю, что это решение.
Часть проблемы заключается в том, что статусы не являются полностью последовательными или имеют фиксированный порядок. Некоторые статусы могут запускаться, останавливаться, а в дальнейшем запускаться снова.
То, что я хотел бы сообщить, это время, на еженедельной или ежемесячной основе, которое занимает каждая запись статуса, время, дата, время, конец, минус дата, время и начало. Кто-нибудь может предложить функцию или другой способ сделать это?
Мне не нужен конкретный код. Я мог бы использовать некоторый пример в псевдокоде или просто в общих чертах, как решить эту проблему. Тогда я мог бы выяснить код.