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

Я пытаюсь реализовать кошелек для веб-приложения. Дизайн БД, который я создал на данный момент, представляет собой таблицу транзакций кошелька, как показано ниже:

wallet_tr_id | user_id | amount | tr_type (debit/credit) | datetime | tr_id

Пользователи в приложении могут совершать сделки с помощью наличных или кошелька. Есть еще одно transactions таблица, содержащая всю информацию о транзакциях, а также те, которые были оплачены / заработаны с помощью кредитов кошелька, заносится в вышеуказанную таблицу с помощью внешнего ключа tr_id,

Каков наилучший способ показать пользователю текущий баланс кошелька?

Должен ли я рассчитать sum total of credits - sum total of debits для этого пользователя, или я должен поддерживать current_balance для пользователя в другой таблице?

PS: для любого пользователя не будет большого количества транзакций.

0

Решение

Нет необходимости хранить баланс. Просто посчитай как ты сказал:

select sum(case when tr_type = 'credit' then amount else -amount end) as balance
from transactions
where user_id = 12345;
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector