Série da semana: Angular, API RESTful e Banco de Dados

Veja mais

Quer ter acesso a todos os cursos desse Guia?

Série: O que são formulários mestre detalhe?

Falhas de gravação é um dos piores cenários que podemos pensar durante o desenvolvimento de software e podemos minimizar esse problema com o padrão Mestre/Detalhe.

Aprenda

Cursos para entender e praticar

Tecnologias

Tenha a documentação final e utilize em seus projetos

Suporte

Tire suas dúvidas e vire um expert

Aprenda

Cursos para entender e praticar

Tecnologias

Tenha a documentação final e utilize em seus projetos

Suporte

Tire suas dúvidas e vire um expert

Muitas vezes, por uma questão de usabilidade, a aplicação necessita armazenar, em uma mesma requisição, um número variável de dados, criados em um formulário dinamicamente.

Nesse cenário, como a aplicação deve reagir se o banco parar de responder antes de todos os dados serem gravados? Imagine pagar por dez itens e receber apenas metade deles em sua casa? Tem hora que não dá pra falhar :/


Qual o check-list do mestre/detalhe?

Na aplicação que estamos discutindo, temos um relacionamento do tipo N para N, onde uma tecnologia pode ser vinculada a muitas vagas e vice versa. Ilustramos essa condição na Figura 2.

Modelagem do exemplo de Vaga e Tecnologias
Figura 2. Modelagem do exemplo de Vaga e Tecnologias

Devido a forte conexão entre essas entidades, as ações aplicadas a uma delas, principalmente a exclusão, deve ser refletida na outra. Para garantir isso, devemos isolar as operações que afetam ambas as entidades em classes especialistas, a fim, inclusive, de evitarmos a duplicação de código:

vagadao Nada disso

São muitos os detalhes com os quais se preocupar quando criamos uma aplicação mestre/detalhe :)

Para te ajudar a não esquecer nenhum deles, preparamos uma revisão de conteúdo, que vale a pena assistir:

Criando uma aplicação mestre/detalhe

Note que em um formulário como a que citamos acima a aplicação deve garantir que a gravação da vaga/itens seja feita de uma só vez, como uma mesma operação. O conceito de atomicidade, que estudamos em bancos de dados, quer dizer exatamente isso.

Nesse sentido, se enviamos 10 itens através do formulário, caso a aplicação falhe durante a gravação do sexto item, toda a operação deve falhar e nenhum deve ser gravado no banco de dados.

No curso a seguir, mostramos como utilizar transações para resolver esse problema de gravação e pontuamos outros problemas comuns encontrados no planejamento desse tipo de aplicação:

Baixe o projeto completo

Quer baixar esse projeto completo? No botão abaixo você pode acessar a documentação completa do curso acima:

Baixe o projeto completo

Entenda os relacionamentos 1 para n e n para n em cada linguagem

Grande parte da complexidade por trás de uma aplicação mestre/detalhe, como a que vimos no curso acima, está na implementação dos relacionamentos entre as suas entidades.

Apenas analisando os atributos de cada uma dessas entidades e como elas interagem uma com as outras podemos implementar esses relacionamentos corretamente, o que envolve o conhecimento da aplicação a ser construída.

Abaixo, selecionamos alguns cursos que demonstram como fazer isso em diferentes linguagens, incluindo a sua :)

Java

PHP

.NET

Python/Django

Ficou com dúvida?

Utilize o suporte ao aluno para conversar com a gente. Comente! =D

Suporte ao aluno - Deixe a sua dúvida.
Assinatura Devmedia
Faça parte dessa comunidade 100% focada em programação e tenha acesso ilimitado. Nosso compromisso é tornar a sua experiência de estudo cada vez mais dinâmica e eficiente. Portanto, se você quer programar de verdade seu lugar é aqui. Junte-se a mais de...
+ 800 Mil programadores
,90* / mês
  • Séries
  • Projetos completos
  • Cursos
  • Guias de carreiras
  • DevCasts
  • Desafios
  • Artigos
  • App
  • Suporte em tempo real
A assinatura é cobrado através do seu cartão de crédito. *Tempo minimo de assinatura: 12 meses.
Assinatura Devmedia
Faça parte dessa comunidade 100% focada em programação e tenha acesso ilimitado. Nosso compromisso é tornar a sua experiência de estudo cada vez mais dinâmica e eficiente. Portanto, se você quer programar de verdade seu lugar é aqui. Junte-se a mais de...
+ 800 Mil programadores
Conheça agora!
,90* / mês
  • Séries
  • Projetos completos
  • Cursos
  • Guias de carreiras
  • DevCasts
  • Desafios
  • Artigos
  • App
  • Suporte em tempo real
A assinatura é cobrada através do seu cartão de crédito. *Tempo mínimo de assinatura: 12 meses.