Executando verificação de segurança...
2

Banco de Dados (para quem esta começando…)

Sabe aquele assunto de banco de dados relacional que apareceu pela primeira vez na faculdade — relações 1:1, 1:N, N:N — mas te passaram de maneira tão teórica, com tabelas e 500 tipos de diagramas diferentes, que você pensou: “Nunca vou usar isso na vida”? Pois é. Errado. Muito errado…

Se você está começando no backend agora, deixa eu te dar um aviso importante: quase tudo gira em torno de entender relacionamentos entre tabelas. Se você não entende isso, vai se perder bonito mexendo em qualquer aplicação real. Tudo depende de tudo.


O tal do schema

O schema é a base do seu projeto. É nele que você enxerga as relações entre tabelas, quem depende de quem e como as coisas se conectam. Dica prática: desenhe. Sério. Pode ser no papel, na parede, no Paint... só desenha.

Pensa assim: cada relacionamento é uma linha ligando duas tabelas. Se você conseguir visualizar isso, já tem meio caminho andado.

(E aqui você volta a desenhar tabelas e entende o que o professor da faculdade tentou te dizer kkk)

OBS: Grande parte dos tutoriais por aí passa voando por isso. O cara abre o vídeo, copia uma config pronta, fala “isso é padrão” e pronto. Nunca mais explica o porquê daquilo. Mas é importante você ir atrás.


Tipos de dados (ou como seu ORM enxerga o mundo)

Você precisa entender como o ORM que você usa representa os tipos básicos:

  • Int, Boolean, Decimal (atenção: muitas vezes isso vem como string no retorno – trate isso antes de jogar no front!)

Saber isso evita vários bugs e problemas de formatação entre backend e frontend.


Consultas: o arroz com feijão

Aqui é onde a mágica (ou o caos) acontece. Algumas funções que você precisa conhecer:

  • findFirst, findUnique, findMany, create, update, delete

Se você entende o que essas funções fazem, já consegue se virar com 80% das tarefas no começo. Mas claro, não para por aí.

Observação: às vezes os nomes mudam, mas tudo segue a mesma base. Programação tem muito disso — várias ferramentas fazendo a mesma coisa, mas com uma API diferente. Vai se acostumando (especialmente no mundo JS).


Consultas com filtros, ordenações e paginação

É aqui que o negócio começa a ficar mais interessante. Ordenar por data de criação? Filtrar por status? Fazer paginação? Ordenar por um campo order e manter a sequência sem deixar furos (ex: 1, 2, 3, 5 não pode acontecer)?

Tudo isso entra nessa camada.

Na prática, você acaba usando um findMany, mas com algumas configurações adicionais no seu where, take, skip e orderBy. Exemplo:

orderBy: { createdAt: 'asc' }
orderBy: { order: 'asc' }

Relacionamentos e vinculações

Aqui o júnior chora e a mãe não vê.

Criar relações entre tabelas exige um pouco mais de cuidado. Você precisa entender bem o tipo de relacionamento entre as entidades, como mapear isso no ORM, como definir as foreign keys corretamente e como fazer consultas que envolvem múltiplas tabelas de forma segura e performática.

Aqui você usa um include ou um select.


Performance

Esse tópico pode virar um curso inteiro, mas vou listar algumas ideias pra você começar a se preocupar com performance desde cedo:

  • Saber quando usar select em vez de include pode economizar MUITO dado sendo carregado desnecessariamente.
    • select traz apenas os campos que você realmente precisa.
    • include puxa tudo da tabela relacionada — e isso pode ser caro, dependendo da profundidade.
  • Reduza o número de queries desnecessárias: às vezes você pode resolver algo com uma só query bem feita, em vez de 3 chamadas separadas ao banco.
  • Indexação: estude como criar índices nos campos que são mais usados em filtros e ordenações.
  • Transactions: aprenda a agrupar múltiplas alterações no banco em uma única operação atômica. Se uma falhar, tudo é desfeito. Isso evita estados quebrados no banco.

Anota essas perguntas pra estudar depois:

  • Quando usar select e quando usar include?
  • Como fazer uma transaction?
  • O que é lazy loading e eager loading?

Observação importante

Você pode não entender tudo desse post de primeira — e tá tudo bem. Se você leu e quer aprender, copia esse texto e joga na sua IA favorita. Pede pra ela te explicar parte por parte, conversa com ela um pouco e depois vai pro código treinar. Ler, entender e praticar. Não tem outro caminho.


Dica de exercício pra fixar

Cria uma API de lista de tarefas (ToDo List), mas faz ela com um pouco mais de complexidade:

  • Cada nota criada pode estar vinculada a outra nota.
  • As notas podem pertencer a grupos.
  • Permita mover notas entre grupos, editar os dados de cada nota e de cada grupo.
  • Vá além: pense em como seria o cadastro de usuário, login, autenticação, permissões, etc.

Faz um projetinho completo. Você, o VSCode e o Insomnia, juntinhos na missão.


Conclusão

Se você está começando agora no backend, não subestime o poder de entender bem os relacionamentos, como o ORM lida com eles e como fazer consultas limpas, seguras e eficientes. Isso não só vai facilitar sua vida, como vai te poupar de muitos bugs difíceis de rastrear.

Aprender isso de verdade mudou minha forma de enxergar o backend. (Queria ter lido isso antes de me deparar com minha primeira vaga…)

Sim, ainda sou júnior. Talvez eu erre em algumas coisas aqui. Mas se esse post ajudar 1 ou 2 pessoas a chegarem na primeira vaga menos perdidas, já valeu.

Carregando publicação patrocinada...