Каким образом организовать баланс средств в личном кабинете?

Каким образом организовать баланс средств в личном кабинете?
Сделать ячейку в таблице пользователей и плюсовать либо минусовать при пополнении либо списании средств? либо организовать таблицу со счетами и запросом суммировать приход и отнимать суммированный расход?
  • Вопрос задан
  • 631 просмотр
Решения вопроса 1
begemot_sun
@begemot_sun
Программист в душе.
Я бы сделал 2 таблицы:
1. Транзакции со счетом (его изменения + причины этого изменения). Только добавление.
2. Состояние счета на дату\время (дата\время, счет, id_юзера). В это таблицу мы только пишем, и ничего не меняем и не удаляем.

Такая структура позволит получить состояние счета за любой промежуток времени.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Lumore
@Lumore
Front-end developer
Отдельную таблицу:
balance
=======
id
user_id
balance

Index - user_id
Fk - user_id

Тогда запросы будут быстрей.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Таблица баланса: id, дата/время, приход, расход, остаток, откуда (ID из таблицы способов пополнения), куда (ID из таблицы заказов), комментарий, user_id
После проведения операции - обновляйте баланс в профиле пользователя. (таблица: user, поле: balance), чтобы не делать выборку по таблице баланса для его отображения (при необходимости) при каждом запросе страницы.

ДО проведения любой операции с балансом:
1. Баланс-1: выборка - производится для конкретного юзера с LIMIT 1 и обратной сортировкой по полю дата/время (timestamp).
2. Баланс-2: значение balance из таблицы пользователя.
3. И сверяйте эти два поля: при несовпадении - блокируйте проведение транзакций с оповещением администратора.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы