Извините, этот работает с сортировкой:
SELECT * FROM (SELECT ROWNUM rnum,a.* FROM (SELECT * FROM "tabla" order by "column" asc) a) WHERE rnum BETWEEN "firstrange" AND "lastrange";
Шаблон проектирования, который приходит на ум, - это «правило»; -)
Или, если хотите, шаблон команд
Другими словами, для подобных ситуаций я бы создать таблицу базы данных, в которой перечислены состояния и допустимые переходы, и связать действие с каждым переходом (используя отражение)
. Я обнаружил, что это полезно для обработки случаев, когда действие перехода является более сложным, чем просто обновление статусов для соответствия.
Например, в одной системе у нас был рабочий процесс, в котором документ запроса должен был пройти через несколько станций рассмотрения комитетом, каждая из которых могла отклонить или передать документ на следующий этап, а также обработать пользовательские побочные эффекты. Организация комитета, структуры обработки и действия обработки значительно менялись три раза во время разработки ,
Я предпочитаю шаблон наблюдателя для такого рода вещей: http://en.wikipedia.org/wiki/Observer_pattern В приведенном вами примере я бы задачи наблюдают за своей проблемой, а проблемы - за своими задачами. Когда проблема отмечена как отмененная, задачи видны и отмечаются как отмененные. Когда задача помечается как выполненная, проблема ее видит и проверяет, выполнены ли другие задачи и т. Д.