Обработка нескольких балансов с датами истечения срока в MySQL - PullRequest
0 голосов
/ 02 июня 2018

Проблема: Рассмотрим банк, который выдает счета своим пользователям с несколькими балансами с истечением срока действия, т.е. сумма, зачисленная на ваш счет сегодня, истекает ровно через шесть месяцев.Допустим, вы получили 500 $ сегодня (2 июня 2018 года), этот баланс истекает (2 декабря 2018 года).Теперь рассмотрим следующую таблицу балансов клиента.

id  balance createdAt     expiry
001     100     4th November 2017 4th May 2018
002     200     2nd January 2018  2nd July 2018
003     100     10th Feb 2018     10th August 2018

Если пользователь хочет потратить 250 на какой-либо продукт сегодня (2 июня 2018 года), эти 250 единиц следует вычесть шаг за шагом из всех доступных неистекших.сальдо и просроченные строки должны быть очищены.

Поэтому таблица сальдо после покупки должна быть

id  balance createdAt     expiry
003     50  10th Feb 2018 10th August 2018

решение, которое у меня есть

  1. получить все строки пользовательских балансов по возрастанию срока действия
  2. удалить все строки с истекшим сроком действия
  3. перебрать другие строки
  4. если тратить - балансв строке> 0 затем удалите строку и выполните расходы = остаток-расход в строке.
  5. если расходы - баланс в строке <= 0, то обновите строку набора баланса = баланс-расход </li>

что я ожидаю Может ли вышеуказанное решение быть реализовано более умным способом.

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...