Ответ
Misha v.3 20.11.2011 09:07
/ 20.11.2011 09:07
я-бы группировки делать не стал.
я-бы сделал так:
в тот момент, когда человеку начисляется новый штраф, c помощью одного простого SQL запроса (с SUM) считается количество его штрафных баллов за последний месяц (используем DATE_SUB). если количество балов больше порогового значения (5), то пользователю в поле "на доске позора" (тип date) прописывается дата, до которой он будет там отображаться (NOW + DATE_ADD).
соотв. запрос по доставанию и выводу всех заклеймлённых тоже очень простой: сравнение содержимого этого поля с NOW().
правда тут надо будет что-то сделать с тем, что человек может получить доп. штрафы в момент пребывания на доске позора (можно сразу накидывать ему срок).
в любом случае, этот пример, с моей точки зрения, ну совершенно не нуждается в парсерном roll.
P.S. и ведь все пишут roll в try, т.к. его выполнение может приводить к исключению? (ну ладно, могло приводить, щас отменили летнее время, т.е. с этим теперь проще)