Каким образом осуществить внутренний баланс пользователей?
В виде журнала транзакций (приход/расход) отдельной таблицей и дополнительного поля "баланс" в основной таблице. Дополнительное поле менять триггером AFTER INSERT из таблицы транзакций.
Периодические списания выполнять отдельным скриптом, запускаемым из cron.
Тебе ведь все равно понадобится статистика - куда ушли чьи деньги, чтобы пользователям отвечать. Таблицей приходорасходной - как в бухгалтерии. Каждый день планировщик (cron) считает сколько снять с каждого, записывает в эту таблицу и, по желанию, обновляет баланс.
Можно и в момент отдачи страницы делать сумму всех операций и изначальной цифры, но со временем количество операций будет таким большим, чтобы будет вызывать серьезную проблему.