Или просто создать колонку balance и все?
Так делать не рекомендую, может возникнуть ситуация, когда обновление записи может быть производится из двух потоков, например пользователь пополняет баланс, а в это время сервис списывает с него, и одна из операций не выполнится, т.к. запись будет заблокирована. Поэтому, лучше определять баланс сложением операций, но не за весь период, а например хранить остатки на начало месяца и прибавлять к нему обороты с начала месяца. А оперативный баланс, чисто для отображения в интерфейсе, можно держать в кэше и обновлять при добавлении операций.