Dúvidas sobre um sistema de doações por créditos.

Olá, eu sou o Jeff e estou desenvolvendo um sistema no qual o usuário pode trocar resíduos orgânicos por créditos online. Esse sistema está sendo criado para um projeto social no qual as pessoas doarão resíduos orgânicos que serão processados e transformados em adubo, usado para o cultivo de hortaliças. Em troca da doação dos resíduos, o usuário receberá créditos que poderão ser trocados por hortaliças ou negociados com outros usuários. Esse projeto está sendo desenvolvido na minha escola e terá um volume baixo de acessos, sendo o público-alvo algumas famílias carentes e pequenas empresas. Estou usando o MySQL.

Minha maior dúvida está relacionada à parte do banco de dados. Como eu o estruturo, a parte das relações entre as tabelas e tudo mais. Até agora, estou perdido, pois todas as minhas tentativas deram errado.

Entre minhas tentativas de construir o banco de dados, inicialmente tentei criar 3 tabelas: a de usuários, moedas e resíduos. A de moedas teria uma relação one-to-one como a de usuários e one-to-many para resíduos, onde a cada nova doação eu adicionaria o id do resíduo à relação e somaria a quantidade de moedas recebidas por aquela quantidade de resíduo. Mas o problema que eu encontrei foi em trocar essa moeda com outros usuários.

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

Cite algumas das suas tentativas! Por cima, bem por cima, não me parece algo complicado!

Mas como o que vc diz é bem por cima também, não da pra saber muito! precisamos de mais dados!

Acabei de complementar ,obg por querer ajudar