@k2lhu

Каким образом осуществить внутренний баланс пользователей?

Добрый день, на сайте есть клиенты, у клиентов есть тариф, который действует от одной даты до другой, необходимо показывать текущий баланс пользователя, учитывая что каждый день снимается плата равная = тариф/кол-во дней в период. Т.е. при указание периода в 7 дней и стоимости в 70 рублей, на первый день баланс равен 70, на второй 60 и т.д.
Как правильно хранить этот баланс? Каждый раз высчитывать его при выводе или скрипт в планировщике задач писать или же какой то триггер в sql?
  • Вопрос задан
  • 356 просмотров
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В виде журнала транзакций (приход/расход) отдельной таблицей и дополнительного поля "баланс" в основной таблице. Дополнительное поле менять триггером AFTER INSERT из таблицы транзакций.
Периодические списания выполнять отдельным скриптом, запускаемым из cron.
Ответ написан
gzhegow
@gzhegow
Думал, стану умнее, когда адаптируюсь, но нет
Тебе ведь все равно понадобится статистика - куда ушли чьи деньги, чтобы пользователям отвечать. Таблицей приходорасходной - как в бухгалтерии. Каждый день планировщик (cron) считает сколько снять с каждого, записывает в эту таблицу и, по желанию, обновляет баланс.

Можно и в момент отдачи страницы делать сумму всех операций и изначальной цифры, но со временем количество операций будет таким большим, чтобы будет вызывать серьезную проблему.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы