|
валидация на агрегатной функиции, ктонить такое делал? ))
|
|||
---|---|---|---|
#18+
сейчас для удобства поиска разных вариантов сохранения временных отрезков (бронирование) решил свалить расчет на пользовательский агрегат: построчно получает все входящие строки и проверяет все необходимые условия: можно ли сохранять или нет по сути в какой то момент (при прохождении n'ой строки) может настать ситуация что сложились все условия отказа, что нам уже никак нельзя сохранять этот отрезок времени, т.е. это стало известно еще на момент срабатывания агрегатной итерации агрегатная функция в результате проверки вернет некое итоговое значение например -1, что дальше будет обработано как raise а что будет если в агрегатную функцию прямо вставить raise в случае если на этом шаге сложились все условия отказа. т.е. для проверки сохранения записи отрезка времени, запускаем выборку валидация_агрегат(дата1, дата2) по всем записям в этом пересечении времени, если она вернула результат занчит ОК, иначе она уже сваливается. могут ли быть подводные камни?, почему этого делать нельзя? и как вам такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2017, 13:53 |
|
валидация на агрегатной функиции, ктонить такое делал? ))
|
|||
---|---|---|---|
#18+
Legushka, 1 выражайтесь точнее raise notice|warning -- тоже raise 2 сделайте 2 ф-ии. сам аггрегат . и ф-ю f(x)=x, кидающую exception на отрицателный ввод. этого вполне хватит на все случаи применения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2017, 14:07 |
|
|
start [/forum/topic.php?fid=53&fpage=75&tid=1996587]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 320ms |
total: | 444ms |
0 / 0 |