Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Посоветуйте, как лучше учитывать обработку данных / 14 сообщений из 14, страница 1 из 1
25.10.2016, 12:54
    #39333513
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Есть таблица с покупками. Для покупок определенного типа начисляются бонусные баллы. Исходную таблицу изменять нежелательно (добавить в нее флаг "Обработана"). Нужно не допустить дублирования бонусов (т.е. не обрабатывать одну покупку дважды). Покупок задним числом не бывает.
Подскажите, как будет правильнее?
1. Ежедневно запускается скрипт, обрабатывает покупки за предыдущие сутки.
2. Идентификаторы обработанных покупок сохраняются в отдельной таблице и из таблицы покупок извлекаются только те покупки, которые еще не были обработаны.

Второй вариант как бы надежнее, но мне кажется избыточным.

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
25.10.2016, 13:00
    #39333517
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Все варианты хороши, когда грамотно реализованы и учтены все особенности )
...
Рейтинг: 0 / 0
25.10.2016, 14:37
    #39333619
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Если идентификаторы в исходной таблице назначаются sequence, то можно хранить протокол запусков с указанием диапазона обработанных id
...
Рейтинг: 0 / 0
25.10.2016, 14:49
    #39333630
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Да, это sequence.
Возможно это будет оптимальным.
В первом варианте мне не нравится вероятность проблем если вдруг ежедневный запуск не сработает, а во втором варианте не нравится слишком большая избыточность данных.
...
Рейтинг: 0 / 0
25.10.2016, 15:06
    #39333645
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Alibek B.вероятность проблемСудя по вопросу, история когда за что начисляли не хранится. Ну-ну.
...
Рейтинг: 0 / 0
25.10.2016, 15:46
    #39333678
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Alibek B.Да, это sequence.
Возможно это будет оптимальным.
В первом варианте мне не нравится вероятность проблем если вдруг ежедневный запуск не сработает, а во втором варианте не нравится слишком большая избыточность данных.
Храни дату последней обработанной покупки и при следующем запуске начинай с неё.
...
Рейтинг: 0 / 0
25.10.2016, 16:22
    #39333714
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
XMLerХрани дату последней обработанной покупки и при следующем запуске начинай с неё.требуется ряд допущений.
...
Рейтинг: 0 / 0
25.10.2016, 16:31
    #39333732
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
-2-Судя по вопросу, история когда за что начисляли не хранится.
Я думал, но не вижу особого смысла хранить историю начисления бонусов.
Список покупок в прошлом не изменяется и для сверки бонусы всегда можно пересчитать ретроспективно.
Под проблемами я подразумевал, что по какой-то причине ежедневный скрипт может не отработать и тогда начисления за этот день будут пропущены и восстанавливать их нужно будет вручную. При втором варианте такой проблемы не будет, пропущенные покупки будут обработаны при следующем запуске скрипта.
...
Рейтинг: 0 / 0
25.10.2016, 17:26
    #39333800
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Alibek B.-2-Судя по вопросу, история когда за что начисляли не хранится.
Я думал, но не вижу особого смысла хранить историю начисления бонусов.
Смысл осознается в момент, когда возникают разногласия по начислениям.
Пока разногласий нет - по сути не нужна целая куча информации.
Счета, к примеру, не нужны.
Склад тоже не нужен.
Как и история покупок...
А если есть согласие с налоговой - то вообще весь учет становится простой формальностью.

Зато когда появляются разногласия - всю прелесть детального учета понимаешь мгновенно... но поздно :)
...
Рейтинг: 0 / 0
25.10.2016, 18:10
    #39333856
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
-2-XMLerХрани дату последней обработанной покупки и при следующем запуске начинай с неё.требуется ряд допущений.
Без этого даже в туалет не сходишь
...
Рейтинг: 0 / 0
25.10.2016, 22:46
    #39333982
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
andrey_anonymousСмысл осознается в момент, когда возникают разногласия по начислениям.
Например? Я пытался себе представить такую ситуацию, но так и не придумал.
Есть покупки за прошлые периоды, есть соответствующие этим покупкам начисления бонусов.
Допустим есть разногласия по начислениям бонусов за вчерашний день, в этом случае нужно поднять историю покупок (которые регистрируются детально), просуммировать их вручную, посчитать бонус и сверить посчитанное с начисленным.
Но исходные данные, по которым начисляются бонусы, одни и те же, как на момент расчета, так и на любой другой момент в будущем. И результат будет одним и тем же, если только не предполагать, что CPU разучился выполнять арифметические операции.
Смысл хранить историю начислений был бы в том случае, если бы на расчет влияли параметры помимо исходных данных. Но в данном случае формула начисления бонусов полностью детерминированная.
...
Рейтинг: 0 / 0
25.10.2016, 23:41
    #39333990
Посоветуйте, как лучше учитывать обработку данных
Alibek B.сверить посчитанное с начисленным[quot Alibek B.]не вижу особого смысла хранить историю начисления бонусов.
...
Рейтинг: 0 / 0
27.10.2016, 12:57
    #39335268
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
andrey_anonymousЕсли идентификаторы в исходной таблице назначаются sequence, то можно хранить протокол запусков с указанием диапазона обработанных id
А как лучше проверять диапазоны?
left join с последующей проверкой на is null?
Или not exists?
...
Рейтинг: 0 / 0
27.10.2016, 13:37
    #39335324
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте, как лучше учитывать обработку данных
Alibek B.andrey_anonymousЕсли идентификаторы в исходной таблице назначаются sequence, то можно хранить протокол запусков с указанием диапазона обработанных id
А как лучше проверять диапазоны?
left join с последующей проверкой на is null?
Или not exists?
лучше думать не тем местом на котором сидишь.
"обычно" sequence имеет тенденцию только расти и достаточно запоминать последнее обработанное значение
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Посоветуйте, как лучше учитывать обработку данных / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]