Organização de Banco de dados e escolha de MongoDB ou PostgreeSql

29/09/2022

0

Preciso de um sistema de registro de despesas (transações), como tantos que tem..

O SISTEMA: O usuário se cadastra (user). Cadastra diferentes carteiras (wallets). Depois registra as despesas (transações).

Estou em dúvida se uso mongoDb ou SQL, qual é o banco adequado para este de situação?

Pensei em fazer no Mongo ir separar em Collections (users, wallets, transactions).

Pra adicionar uma transação, eu pegaria o user (dentro de users) que estaria salvo porque a pessoa estaria logada, pesquisaria as Wallets que ela tem, e aí adicionaria a transação contendo o user e a wallet.

Existe alguma forma mais inteligente de organizar isso?

Pensei em trabalhar com subdocumentos: cada user ser uma collection, os dados do usuário um documento, e as transações colocar dentro de outro documento. Mas não parece muito confortável.

Fora que se colocar as transações dentro de um único documento, eles logo vão ultrapassar o peso máximo do documento, né?

Dito isto, o MongoDb é capaz de suprir esta necessidade, ou o adequado seria o banco relacional mesmo?

aa
Rôney Fischer

Rôney Fischer

Responder

Posts

26/12/2022

Arthur Heinrich

Imagine que você está criando um sistema onde diversos "atores" se relacionam.

Usuários podem possuir diversas carteiras. Em cada carteira, poderemos ter múltiplas transações, etc.

Se os seus dados são de natureza relacional, é muito provável que um banco relacional seja mais adequado para esta finalidade, o que descartaria o MongoDB.

Quanto a escolher o melhor banco relacional, tenha em mente parâmetros objetivos, como:

- tamanho da base
- criticidade do conteúdo
- volume de acessos/alterações
- tipos de operações

Bancos simples como o MySQL dão um excelente desempenho, são fáceis de configurar e usar, mas não oferecem muitos recursos nem segurança.
Bancos mais complexos oferecem mais recursos, mas podem ser mais difíceis de administrar, podendo até requerer licenças.

O PostgreSQL é um banco "mais ou menos". Ele trabalha com versionamento de dados. Se você fizer muitas alterações nos dados, a base vai crescer rapidamente e requerer a execução periódica de um processo chamado Vaccum. É uma espécie de Garbage Collector para dados. Eu não gosto de depender disso.

Se os dados envolvem dinheiro, necessitando um melhor controle, eu optaria por bancos sólidos como Oracle e MS-SQL Server. Mas custa caro.

Qualquer que seja a escolha, bancos requerem manutenções, assim como carros. Não é só instalar e acreditar que nunca darão problema.

Requer backup, expurgo de dados, limpeza de arquivos de log, etc.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar