У меня есть таблица, которая выглядит как
id
Тип: Auto inc-int
Комментарий: уникальный идентификатор
Значение вставлено auto inc int
dateGained
Тип: dateTime
Комментарий: дата получения валюты
Введенное значение: текущая дата / время
amntGained
Тип: число с плавающей запятой
Комментарий: сумма полученной валюты
Введенное значение: полученное значение (например, 0,25)
amntUsed
Тип: число с плавающей запятой
Комментарий:Когда используется часть значения, этот столбец обновляется
Добавленное значение: 0
uuid
Тип: uuid
Комментарий: пользователи uuid
Значение вставлено: (uuid)
так что несколько примеров строк (для одного пользователя) будут
1 | 2010-07-30 00:00:00 | 0.25 | 0.20 | [uuid]
2 | 2010-08-12 00:00:00 | 1.75 | 0.00 | [uuid]
3 | 2010-08-17 00:00:00 | 8.25 | 0.00 | [uuid]
4 | 2010-09-15 00:00:00 | 0.05 | 0.00 | [uuid]
Теперь мой вопрос вокруг логики:
В основном у меня естьфункция, которой присваивается значение uuid и сумма, затем функция должна пройти через , начиная с самой старой , и обновить используемое значение до тех пор, покаудовлетворен.
например, если функция была задана 6.25
и [uuid]
Таблица будет выглядеть так:
1 | 2010-07-30 00:00:00 | 0.25 | 0.25 | [uuid] //still need to use 6.20
2 | 2010-08-12 00:00:00 | 1.75 | 1.75 | [uuid] //still need to use 4.45
3 | 2010-08-17 00:00:00 | 8.25 | 4.45 | [uuid] //we now have 3.80 remaining
4 | 2010-09-15 00:00:00 | 0.05 | 0.00 | [uuid] //this row is untouched
, но у меня нет ясного представления о том, каксделать это эффективно или вообще в этом отношении.