E qual é a sua dúvida sobre a parte do banco especificamente? Qual banco de dados você ta usando ? Qual o volume de acessos ? Que tipo de público você quer alcançar ? É um projeto acadêmico ?

Complementa aí pra poder te ajudar.

Coloquei o que vc pediu

Bem aparentemente seu problema está na modelagem, eu aconselho a estudar sobre diagramas, o [MER - Modelo de Entidade Relacionamento](https://www.devmedia.com.br/mer-e-der-modelagem-de-bancos-de-dados/14332) é um excelente exemplo de por onde começar e entender onde entra o que. Para ir te dando uma luz pelo que entendi no seu texto você tem muito mais entidades(tabelas) do que você montou. Eu faria da seguinte forma: Usuário Id, Nome, etc Extrato Id, IdUsuario, Valor, Tipo de movimentação(Débito ou Crédito), Natureza da operação( Se o que motivou o registro for uma transferência seria T, se foi uma compra seria G, se for um recebimento de crédito por entrega de resíduo seria C) Resíduos Id, IdExtrato ( Pra você saber o crédito que foi gerado pela entrada do resido), Quantidade, Tipo, Etc, O saldo do usuário seria a crédito - débito toda vez que o usuário quisesse saber ou usar o saldo você faria o cálculo dele e se ficar negativo trava a movimentação. Para as outras naturezas eu faria outras tabelas para ter o controle dessas operações. Vale ressaltar que modelagem é algo tem interpretativo e há mil forma de fazer isso. Em vez de ir direto para o script vai montando diagrama verificando e validando as suas entidades.
muito obrigado camamarada , começei a estudar o MER ja me deu uma luz