Se você está se aprofundando na linguagem de programação ADVPL, entender os tipos de relacionamento entre tabelas é fundamental. Este conteúdo traz uma visão clara sobre como implementar esses relacionamentos utilizando a arquitetura MVC e o modelo 3. Vamos explorar como esses conceitos se aplicam na prática e quais os benefícios que você pode obter ao dominar essa habilidade.
Introdução ao modelo 3
O modelo 3 de tela do TOTVS Protheus é caracterizado por um layout que combina um formulário e um grid inferior, onde cada parte da tela é representada por uma tabela do banco de dados.
Revisão dos modelos de tela
Para entender melhor, vamos revisar rapidamente os modelos de tela existentes no sistema de ERP TOTVS Protheus:
- Modelo 1: Composto apenas por uma tabela, onde aparece apenas o formulário padrão do sistema.
- Modelo 2: Formulário padrão com um grid inferior, mas as informações são armazenadas em uma única tabela.
- Modelo 3: O que vamos focar, onde a parte superior é um formulário e a parte inferior contém um grid, e cada elemento tem as suas respectivas tabelas.
- Modelo X: Formulário na parte superior e dois ou mais grids na parte de baixo, cada um representando por uma tabela.
Acessando a rotina de acervo
Antes de irmos para a nosso conceito de relacionamento entre tabelas, observe o layout do cadastro de acervos, que é a nossa primeira rotina do nosso curso completo de AdvPL com a estrutura do modelo de tela 3 no TOTVS Protheus. Note que na tela de cadastro da rotina, encontramos na parte superior o formulário (Enchoice) e na parte inferior o grid.
Estrutura de tabelas da rotina
O cadastro de acervos é composto por 2 (duas) tabelas SZ4 e SZ5:
- Na tabela SZ4 são armazenados informações dos campos como código, tipo, título, autor e editora.
- Já a tabela SZ5 armazena as informações dos exemplares físicos da biblioteca.
O relacionamento entre essas tabelas é feito através dos campos chaves, Código e Código do acervo que são exibidos na imagem abaixo com uma seta, ele cruciais para a funcionalidade correta da rotina, pois permite a localização das informações entre as tabelas ao acessar a rotina.
Relacionamento entre tabelas
Vamos agora discutir o conceito de relacionamento entre tabelas. Existem três tipos principais:
1. Relacionamento um para um
Este tipo de relacionamento ocorre quando um item de uma tabela pode se relacionar apenas com um item existente em outra tabela. Por exemplo, se temos uma tabela para armazenar nomes e outra para CPFs, cada CPF deve estar vinculado a um único nome.
2. Relacionamento um para muitos
Esse relacionamento é caracterizado por um item de uma tabela que pode se relacionar com vários itens de outra tabela. Por exemplo, um registro de nome pode estar vinculado a múltiplos números de telefone.
3. Relacionamento muitos para muitos
Este tipo de relacionamento ocorre quando vários itens de uma tabela podem se relacionar com vários itens de outra tabela. Um exemplo seria uma tabela de nomes que se relaciona com uma tabela de telefones, onde um usuário pode ter múltiplos números e vice-versa.
Aplicação prática no cadastro de acervos
No cadastro de acervos, temos uma ligação de um para muitos, onde um livro (um título) pode ter vários exemplares físicos na biblioteca. A vinculação é feita entres os campos chaves, código e código do acervo, permitindo que o sistema traga todas as informações necessárias quando a tela de cadastro é aberta.
Conclusão
Esse foi um breve resumo do nosso vídeo, para conferir mais detalhes sobre o conteúdo recomendamos que assista o vídeo na integra no inicio da página.
Considerações finais
Dominar os tipos de relacionamento entre tabelas é essencial para qualquer desenvolvedor que deseje se destacar na linguagem ADVPL. Com isso, você se tornará um profissional mais valorizado e capaz de ajudar sua empresa a reduzir custos com desenvolvimento, considere participar do nosso curso de desenvolvimento ADVPL, Clique Aqui para mais detalhes
Para mais informações sobre cursos e consultoria, acesse também nosso site em RFB Sistemas Consultoria e Treinamento ou entre em contato conosco através da nossa página de Contato.