Relacionar uma ou mais tabelas – Introdução

Concluído

Para criar uma solução eficiente e escalonável para a maioria das soluções que você cria, você precisará dividir os dados em diferentes contêineres (tabelas). Tentar armazenar tudo em um único contêiner provavelmente não seria eficiente, além de dificultar o trabalho e a compreensão do todo.

O exemplo a seguir ajuda a ilustrar esse conceito.

Imagine que você precise criar um sistema para gerenciar ordens de venda. Você precisará de uma lista mestra de itens que vende, juntamente com o estoque disponível, o custo do item e o preço de venda. Você também precisará de uma lista mestre de clientes, com endereços e classificações de crédito. Por fim, você precisará gerenciar as faturas de vendas que criar; portanto, convém ter uma maneira de armazenar os dados das faturas. A fatura precisa incluir informações de faturamento (como número, data e vendedor), informações do cliente, incluindo endereço e classificação de crédito, e um item de linha para cada item na fatura. Os itens de linha devem incluir uma referência ao item que você vendeu e informarem o custo e o preço adequados de cada item, além de diminuírem a quantidade disponível com base na quantidade vendida nesse item de linha.

Não seria recomendável, além de ser algo ineficiente, tentar criar uma única tabela para trabalhar com essa funcionalidade que acabamos de descrever. A forma correta de abordar esse cenário comercial é criar as quatro tabelas a seguir:

  • Clientes
  • Produtos
  • Faturas
  • Itens de linha

Criar uma tabela para cada um desses itens e relacionar estes componentes permitirá o desenvolvimento de uma solução eficiente, que pode ser expandida em grande escala sem que isso comprometa seu alto desempenho. Dividir os dados em várias tabelas também significa que você não terá que armazenar dados repetitivos ou dar suporte a linhas enormes com grandes quantidades de dados em branco. Isso é conhecido como normalização de dados. Além disso, os relatórios serão mais fáceis se você dividir os dados em tabelas separadas.

As tabelas que se relacionam entre si têm uma conexão relacional. A tecnologia presente no Microsoft Dataverse é um banco de dados relacional gerenciado na nuvem pela Microsoft. Os relacionamentos entre as tabelas existem em vários formulários, mas os dois mais comuns são de um para muitos e muitos para muitos, ambos sendo aceitos pelo Dataverse.

Os relacionamentos de um para muitos também são conhecidos como relacionamentos entre tabela principal e secundárias. No exemplo anterior da fatura, a tabela de faturas seria a principal, e os itens de linha seriam uma tabela secundária. Uma fatura pode ter zero, um ou vários itens de linha (linhas secundárias), mas o item de linha sempre estará relacionado a apenas uma fatura (linha principal). Normalmente, as linhas filhas não existirão sem uma linha pai.

Uma coluna que só aceita valores exclusivos é usada para identificar a linha principal. Essa coluna exclusiva é chamada de chave. O mesmo valor (a chave principal) é armazenado nas linhas secundárias relacionadas. Essa coluna é chamada de chave estrangeira quando a linha secundária é usada para armazenar o valor da chave principal. A filtragem é usada para exibir linhas secundárias com um valor na chave estrangeira que corresponde ao valor da chave na linha principal. Isso permite que os aplicativos exibam as linhas secundárias (itens de linha no exemplo anterior) que pertencem a uma linha principal específica (fatura no exemplo anterior). Esse conceito está por trás de muitos aplicativos de softwares comerciais.

Dica

A divisão de dados em tabelas diferentes facilita a criação de uma solução eficiente que pode ser expandida em grande escala, mas saber como dividir os dados em tabelas pode ser difícil. O Dataverse contém muitas das tabelas necessárias para a maioria das organizações. Ao usar tabelas padronizadas e a extensão delas, você conseguirá criar soluções baseadas em uma forma testada, comprovada e escalonável de armazenamento dos dados, que será usada pelas suas soluções.