Relações entre tabelas

Relações entre tabelas definem como linhas podem estar relacionadas entre si na base de dados. Ao nível mais simples, adicionar uma coluna de pesquisa a uma tabela cria uma nova relação 1:N (um-para-muitos) entre as duas tabelas e permite-lhe colocar essa coluna de pesquisa num formulário. Com a coluna de pesquisa, os utilizadores podem associar várias linhas subordinadas dessa tabela a uma única linha de tabela principal.

Apenas para além da definição de como linhas podem estar relacionadas com outras linhas, as relações de tabela 1:N também fornecem dados para resolver os seguintes questões:

  • Quando eu elimino uma linha, devo eliminar quaisquer linhas relacionadas com essa linha?
  • Quando eu atribuo uma linha, também tenho de atribuir todas as linhas relacionadas com essa linha para o novo proprietário?
  • Como posso aerodinamizar o processo de introdução de dados quando crio um nova linha relacionada no contexto de uma linha existente?
  • Como devem os utilizadores que virem uma linha ser capazes de ver linhas associadas?

As tabelas podem também participar numa relação N:N (muitos-para-muitos) em qualquer número de linhas para que as duas tabelas possam ser associadas entre si.

Decidir se pretende utilizar relações ou ligações de tabelas

Relações entre tabelas são metadados que efetuam alterações à base de dados. Estas relações só permitem consultas para obter dados relacionados de forma eficiente. Utilizar relações entre tabelas para definir relações formais que definem a tabela ou que a maior parte das linhas pode utilizar. Por exemplo, uma oportunidade sem um cliente potencial não seria muito útil. A tabela Oportunidade tem também uma relação N:N com a tabela Concorrente. Tal permite vários concorrentes ser adicionado à oportunidade. Convém capturar estes dados e criar um relatório que mostra os concorrentes.

Existem outros tipos menos formais de relações entre linhas que são chamadas ligações. Por exemplo, poderá ser útil saber se dois contactos são casados, ou talvez amigos fora do trabalho, ou talvez de contacto utilizado para trabalhar para outra conta. A maioria das empresas não irá gerar relatórios utilizando este tipo de informações ou não irá necessitar que seja introduzido, pelo que não é provavelmente necessário criar relações entre tabelas. Mais informações: Configurar funções de ligação

Tipos de relações entre tabelas

Quando visualizar o explorador de soluções que poderá considerar existem três tipos de relações entre tabelas. Na realidade, existem apenas duas, conforme mostrado na tabela seguinte.

Tipo de Relação Descrição
1:N (um-para-muitos) Uma relação de tabelas onde uma linha de tabela para a Tabela principal pode ser associada a muitas outras linhas de Tabela relacionada por causa de uma coluna de pesquisa na tabela relacionada.

Para ver uma linha de tabela principal, pode ver uma lista de linhas de tabela relacionadas associadas à mesma.

No portal Power Apps, a Tabela atual representa a tabela principal.
N:N (Muitos-para-Muitos) Uma relação de tabelas que depende de uma Tabela de relaçõesespecial, por vezes chamada uma tabela de Interseção, para que muitas linha de uma tabela possam ser relacionados com muitas linhas de outra tabela.

Quando vê linhas da tabela ou numa relação N:N pode ver uma lista de quaisquer linhas de outra tabela que estejam relacionadas.

O tipo de relação N:1 (muitos-para-um) existe na interface de utilizador porque o estruturador mostra-lhe uma vista agrupada por tabelas. As relações 1:N entre entidades existem, na realidade, entre tabelas e referem-se a cada entidade como Tabela Principal/Atual ou Tabela relacionada. A tabela relacionada, por vezes denominada tabela subordinada, tem uma coluna de pesquisa que permite armazenar uma referência a uma linha da tabela principal, por vezes denominada de tabela principal. Uma relação N:1 é apenas uma relação 1:N da perspetiva da tabela relacionada.

Comportamento da relação de tabelas

Os comportamentos para tabelas relacionadas é importante porque ajuda a garantir a integridade dos dados e pode automatizar processos de negócio para a sua empresa.

Preservar integridade dos dados

Existem algumas tabelas para suportar outras tabelas. Não fazem sentido individualmente. Normalmente, têm uma coluna de pesquisa necessária para associar à tabela principal que suportam. O que deve acontecer se uma linha principal for eliminada?

Pode utilizar o comportamento da relação para definir o que acontece com as linhas relacionadas de acordo com as regras da sua empresa. Mais informações: Adicionar comportamento avançado da relação

Automatizar processos de negócio

Digamos que tem um novo representante de vendas e pretende atribuir-lhe um número de contas existentes atualmente atribuídas a outro representante de vendas. Todos as linhas da conta podem ter um número de atividades de tarefas associadas à mesma. Pode localizar facilmente as contas ativas que pretende reatribuir e atribuí-las ao representante de vendas novo. Mas que deve acontecer para algumas atividades de tarefas associadas a contas? Pretende abrir cada tarefa e decidir se têm de ser atribuídos ao novo representante de vendas? Provavelmente não. Em vez deste, pode informar a relação aplicar automaticamente algumas informações padrão do utilizador. Estas regras aplicam-se apenas a linhas de tarefas associados às contas que está a reatribuir. As suas opções:

  • Reatribuir todas as tarefas ativas.
  • Reatribuir todas as tarefas.
  • Não reatribuir nenhuma das tarefas.
  • Reatribuir todas as tarefas atribuídas atualmente ao antigo proprietário das contas.

A relação pode controlar o modo como as ações efetuadas numa linha para a linha de tabela principal se aplica a todos as linhas de tabela relacionada.

Comportamentos

Existem vários tipos de comportamento que podem ser aplicados quando ocorrem determinadas ações.

Comportamento Descrição
Cascata Ativa Executar ações sobre quaisquer linhas de tabela relacionada ativas.
Tudo em Cascata Executar ações sobre quaisquer linhas de tabela relacionada.
Sem Cascata Não fazer nada.
Remover Associação Remova o valor de pesquisa para todas as linhas relacionadas.
Restringir Impedir que a linha de tabela primária seja eliminada enquanto as linhas de tabela relacionadas existirem.
Propriedade de Utilizador em Cascata Executar ações sobre quaisquer linhas de tabela relacionada propriedade do mesmo utilizador da linha de tabela primária.

Ações

Estas são as ações que podem acionar determinados comportamentos:

Colunas Descrição Opções
Atribuir O que deve acontecer se a linha de tabela primária está atribuída a outra pessoa? Tudo em Cascata
Cascata Ativa
Propriedade de Utilizador em Cascata
Nenhum em Cascata
Re-hierarquizar O que deve ocorrer quando o valor de pesquisa de uma tabela relacionada numa relação parental é alterado?
Mais informações: Relações entre tabelas parentais
Tudo em Cascata
Cascata Ativa
Propriedade de Utilizador em Cascata
Nenhum em Cascata
Partilhar Que deve acontecer se a linha de tabela primária for partilhada? Tudo em Cascata
Cascata Ativa
Propriedade de Utilizador em Cascata
Nenhum em Cascata
Eliminar Que deve acontecer se a linha de tabela primária for eliminada? Tudo em Cascata
Desassociar Artigo
Restringir
Anular Partilha Que deve acontecer se uma linha de tabela primária deixar de ser partilhada? Tudo em Cascata
Cascata Ativa
Propriedade de Utilizador em Cascata
Nenhum em Cascata
Intercalar Que deve acontecer se uma linha de tabela primária for unida? Tudo em Cascata
Nenhum em Cascata
Vista de Rollup Qual é o comportamento pretendido da vista de rollup associada a esta relação? Tudo em Cascata
Cascata Ativa
Propriedade de Utilizador em Cascata
Nenhum em Cascata

Nota

As ações Atribuir, Eliminar, Unir e Re-hierarquizar não serão executadas nas seguintes situações:

  • Se a linha principal original e a ação solicitada contiverem os mesmos valores. Exemplo: tentar acionar uma Atribuição e escolher um contacto que já é o proprietário da linha
  • Tentar realizar uma ação numa linha principal que já está a executar uma ação em cascata

Nota

Ao executar uma atribuição, quaisquer fluxos de trabalho ou regras de negócio que estejam atualmente ativos nas linhas serão automaticamente desativados quando ocorrer a reatribuição. O novo proprietário da linha terá de reativar o fluxo de trabalho ou a regra de negócio se quiser continuar a usá-lo.

Relações entre tabelas parentais

Cada par de tabelas que é elegível para ter uma relação 1:N pode ter várias relações 1:N entre eles. No entanto, normalmente, apenas uma dessas relações pode ser considerada uma relação de tabelas parental.

Uma relação de tabelas parental é qualquer relação de tabelas 1:N onde uma das opções em cascata na coluna Parental da tabela seguinte for verdadeira.

Ação Parental Não Parental
Atribuir Tudo em Cascata
Propriedade de Utilizador em Cascata
Cascata Ativa
Nenhum em Cascata
Eliminar Tudo em Cascata Remover Ligação
Restringir
Re-hierarquizar Tudo em Cascata
Propriedade de Utilizador em Cascata
Cascata Ativa
Nenhum em Cascata
Partilhar Tudo em Cascata
Propriedade de Utilizador em Cascata
Cascata Ativa
Nenhum em Cascata
Anular Partilha Tudo em Cascata
Propriedade de Utilizador em Cascata
Cascata Ativa
Nenhum em Cascata

Por exemplo, se criar uma nova tabela personalizada e adicionar uma relação de tabelas de 1:N com a tabela de conta em que a tabela personalizada é a tabela relacionada, pode configurar as ações para essa relação de tabelas para utilizar as opções na coluna Parental. Se adicionar mais tarde outra relação de tabelas 1:N com a tabela personalizada como a tabela de referência, só é possível configurar as ações para utilizar as opções na coluna Não Parental.

Normalmente, isto significa que, para cada par de tabelas, existe apenas uma relação parental. Existem alguns casos em que a pesquisa na tabela relacionada poderá permitir que uma relação com mais de um tipo de tabela.

Por exemplo, se uma tabela tem uma pesquisa de Cliente que pode referir-se a um contacto ou a uma tabela de conta. Existem duas relações entre tabelas parentais 1:N diferentes.

Qualquer tabela de atividade tem um conjunto semelhante de relações entre tabelas parentais para tabelas que podem ser associadas a utilizar a coluna de pesquisa relativa.

Limitações à comportamentos que pode ser definida

Por causas das relações parentais, existem algumas restrições que tem de manter em consideração quando definir relações entre tabelas.

  • Uma tabela personalizada não pode ser a tabela primária numa relação com uma tabela do sistema relacionada que seja colocada em cascata. Isto significa que não é possível ter uma relação com uma ação definida como Tudo em Cascata, Cascata Ativa ou Propriedade de Utilizador em Cascata entre uma tabela personalizada primária e uma tabela do sistema relacionada.
  • Nenhuma relação nova pode ter uma ação definida como Eliminação em Cascata, Cascada Ativa ou Propriedade de Utilizador em Cascata se a tabela relacionada nessa relação já existir como tabela relacionada noutra relação que tenha uma ação definida como Eliminação em Cascata, Cascata Ativa ou Propriedade de Utilizador em Cascata. Tal evita relações que criem uma relação entre várias entidades principais.

Limpeza de direitos de acesso herdados

A utilização dos comportamentos em cascata Re-hierarquizar e Partilhar são úteis quando pretende fornecer acesso a linhas através de tabelas relacionadas. Mas pode haver uma alteração no processo ou na conceção que requer uma alteração das definições de comportamento em cascata.

Quando uma relação de tabelas utiliza Re-hierarquizar ou Partilhar, e o comportamento em cascata é alterado para Sem Cascata, a relação de tabelas impede que qualquer nova permissão mude de cascata para as tabelas subordinadas relacionadas. Além disso, as permissões herdadas que foram concedidas enquanto o comportamento em cascata estava ativo têm de ser revogadas.

A limpeza de direitos de acesso herdados é uma tarefa de sistema que limpa os direitos de acesso herdados legados que permanecem depois de o comportamento em cascata ser alterado para Sem Cascata. Esta limpeza não afetará nenhum utilizador que tenha acesso direto a uma tabela, mas removerá o acesso de qualquer pessoa que tenha acesso apenas através da herança.

A limpeza dos direitos de acesso herdados funciona da seguinte forma:

  1. Identifica e recolhe todas as tabelas que estavam numa relação em cascata com o principal atualizado.
  2. Identifica e recolhe os utilizadores a quem foi concedido acesso às tabelas relacionadas através do acesso herdado.
  3. Verifica os utilizadores a quem foi dado acesso direto a uma tabela relacionada e retira-os da recolha.
  4. Remove o acesso herdado aos utilizadores recolhidos nas tabelas recolhidas.

Após a limpeza, os utilizadores que conseguiram aceder a tabelas relacionadas apenas por causa da caraterística em cascata já não conseguem aceder às linhas, garantindo uma maior segurança. Existem casos em que a limpeza poderá não ter êxito. Saber mais sobre como limpar o acesso herdado

Consulte também

Monitorizar tarefas de sistema
Criar e editar relações 1:N (um-para-muitos) ou N:1 (muitos-para-um)
Criar relações entre tabelas de Muitos-para-muitos (N:N)

Nota

Pode indicar-nos as suas preferências no que se refere ao idioma da documentação? Responda a um breve inquérito. (tenha em atenção que o inquérito está em inglês)

O inquérito irá demorar cerca de sete minutos. Não são recolhidos dados pessoais (declaração de privacidade).