Compartilhar via


Relacionamentos de tabela

Os relacionamentos de tabela definem como as linhas podem ser relacionadas entre si no banco de dados. No nível mais simples, adicionar uma coluna de pesquisa a uma tabela cria um novo relacionamento 1:N (um para muitos) entre as duas tabelas e permite inserir essa coluna de pesquisa em um formulário. Com a coluna de pesquisa, os usuários podem associar várias linhas secundárias dessa tabela a uma única linha da tabela principal.

Além de apenas definir como as linhas podem ser relacionadas a outras linhas, os relacionamentos de tabela 1:N também fornecem dados para resolver as seguintes questões:

  • Quando excluo uma linha, todas as linhas relacionadas a essa linha também devem ser excluídas?
  • Quando atribuo uma linha, também preciso atribuir todas as linhas relacionadas a essa linha ao novo proprietário?
  • Como posso simplificar o processo de entrada de dados ao criar uma linha relacionada no contexto de uma linha existente?
  • Como as pessoas exibindo uma linha podem exibir as linhas associadas?

As tabelas podem também participar de um relacionamento N:N (muitos-para-muitos) onde qualquer quantidade de linhas para duas tabelas podem ser associada uma com as outras.

Decidir se deve usar relacionamentos de tabela ou conexões

Os relacionamentos de tabela são metadados que fazem alterações no banco de dados. Esses relacionamentos permitem que as consultas recuperem dados relacionados de forma eficaz. Use relacionamentos de tabela para definir relacionamentos formais que definem a tabela ou que a maioria das linhas pode usar. Por exemplo, uma oportunidade sem um cliente potencial não seria útil. A tabela Oportunidade também tem um relacionamento N:N com a tabela Concorrente. Isso permite que vários concorrentes sejam adicionados à oportunidade. Convém capturar esses dados e criar um relatório que mostre os concorrentes.

Há outros tipos menos formais de relacionamentos entre linhas que são chamadas de conexões. Por exemplo, pode ser útil saber se dois contatos são casados ou talvez que sejam amigos fora do trabalho ou talvez que um contato costumava trabalhar para outra conta. A maioria das empresas não gerará relatórios usando esse tipo de informação nem exigirá que isso seja inserido, portanto, provavelmente não vale a pena criar relacionamentos de tabela. Mais informações: Configurar funções de conexão

Tipos de relacionamentos de tabela

Ao consultar o gerenciador de soluções, você pode pensar que há três tipos de relacionamentos de tabela. Realmente há somente dois, conforme mostrado na seguinte tabela.

Tipo de Relacionamento Descrição
1:N (Um-para-Muitos) Um relacionamento de tabela em que uma linha de tabela para a Tabela principal pode ser associada a muitas outras linhas da Tabela relacionada por causa de uma coluna de pesquisa na tabela relacionada.

Ao exibir uma linha da tabela principal, você poderá ver uma lista das linhas de tabela relacionadas que estão associadas a ela.

No portal do Power Apps, Tabela atual representa a tabela principal.
Relacionamentos N:N (muitos-para-muitos) Um relacionamento de tabela que depende da Tabela de relacionamento especial, às vezes chamada de uma tabela de interseção, de modo que várias linhas de uma tabela possam ser relacionadas a várias linhas de outra tabela.

Ao exibir as linhas de qualquer uma das tabelas em um relacionamento N:N, é possível ver uma lista de todas as linhas da outra tabela que estão relacionadas a ela.

O tipo de relacionamento N:1 (muitos-para-um) existe na interface do usuário, porque o designer mostra uma exibição agrupada por tabelas. Os relacionamentos 1:N realmente existem entre tabelas e referem-se a cada tabela como uma Tabela principal/atual ou Tabela relacionada. A tabela relacionada, às vezes chamada de tabela secundária, tem uma coluna de pesquisa que permite armazenar uma referência a uma linha da tabela primária, às vezes chamada de tabela principal. Um relacionamento N:1 é apenas um relacionamento 1:N exibido na perspectiva da tabela relacionada.

Comportamento do relacionamento de tabela

Comportamento de tabelas relacionadas é importante porque ajuda a garantir a integridade dos dados e automatizar os processos empresariais para sua empresa.

Preserve a integridade dos dados

Existem algumas tabelas para oferecer suporte a outras tabelas. Eles não fazem sentido isoladamente. Geralmente, eles têm uma coluna de pesquisa necessária para vincular à tabela principal à qual oferecem suporte. O que deve ocorrer quando a linha principal for excluída?

Você pode usar o comportamento do relacionamento para definir o que acontece com colunas relacionadas de acordo com as regras de sua empresa Mais informações: Adicionar comportamento de relacionamento avançado

Automatize os processos empresariais

Vamos dizer que você tenha um novo vendedor e deseje atribuir a ele uma variedade de contas existentes atualmente atribuídas a outro vendedor. Cada linha de conta pode ter uma variedade de atividades de tarefa associadas a ela. É fácil localizar as contas ativas que você deseja reatribuir e atribuir novamente ao novo vendedor. Mas o que deve ocorrer para qualquer atividade de tarefa associada às contas? Deseja abrir cada tarefa e decidir se também devem ser atribuídas ao novo vendedor? Provavelmente não. Em vez disso, você pode permitir que o relacionamento aplique algumas regras padrão para você automaticamente. Essas regras são aplicáveis somente para linhas de tarefas associadas às contas que você está reatribuindo. Suas opções são:

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

O relacionamento pode controlar como as ações realizadas em uma linha da linha da tabela primária são propagadas para todas as linhas da tabela relacionadas.

Comportamentos

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

Comportamento Descrição
Ativos em Cascata Execute a ação em todas as linhas de tabela relacionadas ativas.
Todos em Cascata Execute a ação em todas as linhas de tabela relacionadas.
Nenhum em Cascata Não faça nenhuma ação.
Remover Link Remova o valor da consulta para todas as linhas relacionadas.
Restringir Evita que a linha da tabela primária seja excluída enquanto as linhas da tabela relacionadas existirem.
Propriedade do usuário em cascata Execute a ação em todas as linhas da tabela relacionadas pertencentes ao mesmo usuário que a linha da tabela primária.

Ações

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

Coluna Descrição Opções
Atribuir O que deve ocorrer quando a linha da tabela primária é atribuída a outra pessoa? Todos em Cascata
Cascata Ativa
De Propriedade do Usuário em Cascata
Nenhum em Cascata
Reassociar O deve ocorrer quando o valor de consulta de uma tabela relacionada em um relacionamento primário for alterado?
Mais informações: Relacionamentos primários entre tabelas
Todos em Cascata
Cascata Ativa
De Propriedade do Usuário em Cascata
Nenhum em Cascata
Compartilhar O que deve ocorrer quando a linha da tabela primária é compartilhada? Todos em Cascata
Cascata Ativa
De Propriedade do Usuário em Cascata
Nenhum em Cascata
Excluir O que deve ocorrer quando a linha da tabela primária é excluída? Todos em Cascata
Remover Link
Restringir
Descompartilhar O que deve ocorrer quando uma linha da tabela primária não é compartilhada? Todos em Cascata
Cascata Ativa
De Propriedade do Usuário em Cascata
Nenhum em Cascata
Mesclar O que deve ocorrer quando uma linha da tabela primária não é mesclada? Todos em Cascata
Nenhum em Cascata
Exibição de Valor Acumulado Qual é o comportamento desejado de um modo de exibição de valor acumulado associado a este relacionamento? Todos em Cascata
Cascata Ativa
De Propriedade do Usuário em Cascata
Nenhum em Cascata

Observação

As ações Atribuir, Excluir, Mesclar e Reassociar não serão executadas nas seguintes situações:

  • Se a linha primária original e a ação solicitada contiverem os mesmos valores. Exemplo: tentativa de acionar uma atribuição e escolher um contato que já é o proprietário da linha
  • Tentativa de realizar uma ação em uma linha primária que já está executando uma ação em cascata

Observação

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

Relacionamentos primários entre tabelas

Cada par de tabelas elegível a ter um relacionamento 1:N pode ter vários relacionamentos 1:N entre elas. Normalmente, somente um desses relacionamentos pode ser considerado um relacionamento primário entre tabelas.

Um relacionamento primário entre tabelas é qualquer relacionamento 1:N entre tabelas no qual uma das opções em cascata na coluna Primário da tabela a seguir é verdadeira.

Ação Primário Não primário
Atribuir Todos em Cascata
De Propriedade do Usuário em Cascata
Cascata Ativa
Nenhum em Cascata
Excluir Todos em Cascata RemoveLink
Restringir
Reassociar Todos em Cascata
De Propriedade do Usuário em Cascata
Cascata Ativa
Nenhum em Cascata
Compartilhar Todos em Cascata
De Propriedade do Usuário em Cascata
Cascata Ativa
Nenhum em Cascata
Descompartilhar Todos em Cascata
De Propriedade do Usuário em Cascata
Cascata Ativa
Nenhum em Cascata

Por exemplo, se você criar uma tabela personalizada e adicionar um relacionamento 1:N entre tabelas com a tabela da conta onde a tabela personalizada é a tabela relacionada, é possível configurar as ações para que esse relacionamento use as opções da coluna Primário. Se você adicionar posteriormente o relacionamento 1:N entre tabelas com a tabela personalizada como a tabela de referência, é somente possível configurar as ações para usar as opções da coluna Não primário.

Isso significa que, geralmente, para cada par de tabelas, há somente um relacionamento primário. Há casos em que a pesquisa na tabela relacionada pode permitir um relacionamento com mais de um tipo de tabela.

Por exemplo, se uma tabela tiver uma pesquisa de Cliente que pode se referir a um contato ou uma tabela da conta. Existem dois relacionamentos primários 1:N entre tabelas separados.

Qualquer tabela de atividade tem um conjunto semelhante de relacionamentos primários para tabelas que podem ser associadas usando a coluna de pesquisa referente.

Limitações nos comportamentos que você pode definir

Devido aos relacionamentos primários, há algumas limitações que você deve saber ao definir relacionamentos entre tabelas.

  • Uma tabela personalizada não pode ser a tabela primária em um relacionamento com uma tabela de sistema relacionada em cascata. Isso significa que não pode haver um relacionamento com nenhuma ação definida como Todos em Cascata, Cascata Ativa ou Do usuário - cascata entre uma tabela primária personalizada e uma tabela do sistema relacionada.
  • Nenhum novo relacionamento poderá ter ações definidas como Todos em Cascata, Cascata Ativa ou Do usuário - cascata se a tabela relacionada nesse relacionamento já existir como tabela relacionada em outro relacionamento que tenha ações definidas como Todos em Cascata, Cascata Ativa ou Do usuário - cascata. Isso evita relacionamentos que criam outros relacionamentos com vários níveis superiores.

Limpeza de direitos de acesso herdados

O uso de comportamentos em cascata Reassociar e Compartilhar é útil quando você deseja fornecer acesso a linhas em tabelas relacionadas. Contudo, pode haver uma mudança no processo ou design que exija uma mudança nas configurações de comportamento em cascata.

Quando um relacionamento de tabela usa Reassociar ou Compartilhar e o comportamento em cascata é alterado para Nenhum em Cascata, o relacionamento de tabela evita que novas alterações de permissão sejam colocados em cascata para as tabelas filho relacionadas. Além disso, as permissões herdadas que foram concedidas enquanto o comportamento em cascata estava ativo devem ser revogadas.

A limpeza de direitos de acesso herdados é um trabalho do sistema que limpa os direitos de acesso herdados que permanecem depois que o comportamento em cascata é alterado para Nenhum em Cascata. Essa limpeza não afetará nenhum usuário que recebeu acesso direto a uma tabela, mas removerá o acesso de qualquer pessoa que recebeu acesso somente por herança.

É assim que funciona a limpeza de direitos de acesso herdados:

  1. Identifica e coleta todas as tabelas que estavam em um relacionamento em cascata com o primário atualizado.
  2. Identifica e coleta os usuários que receberam acesso às tabelas relacionadas por meio do acesso herdado.
  3. Verifica se há usuários que receberam acesso direto a uma tabela relacionada e os remove da coleção.
  4. Remove o acesso herdado para os usuários coletados nas tabelas coletadas.

Após a execução da limpeza, os usuários que conseguiam acessar as tabelas relacionadas apenas por causa do recurso de cascata não podem mais acessar as linhas, o que garante maior segurança. Há casos em que a limpeza pode não ter êxito. Saiba mais sobre como limpar o acesso herdado

Confira também

Monitorar trabalhos do sistema
Criação e edição de relacionamentos 1:N (um para muitos) ou N:1 (muitos para um)
Criar relacionamentos N:N (muitos-para-muitos) entre tabelas

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).