Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As relações de tabela no Microsoft Dataverse definem as maneiras pelas quais as linhas de tabela podem ser associadas a linhas de outras tabelas ou da mesma tabela. Há dois tipos de relações de tabela:
Relacionamentos um-para-muitos
Em um relacionamento de entidade um-para-muitos, várias linhas da tabela de referência (relacionadas) podem ser associadas a uma única linha da tabela de entidade referenciada (principal). Às vezes, a linha da tabela referenciada é conhecida como "pai" e as linhas da tabela de referência são conhecidas como "filhos". Um relacionamento muitos para um é apenas uma perspectiva secundária de um relacionamento um para muitos.
Por exemplo, em um cenário escolar, vários cursos podem ser ministrados em uma única sala, de modo que a tabela de turmas teria uma relação um-para-muitos com a tabela de cursos.
Relacionamentos de muitos para muitos
Em um relacionamento da tabela muitos para muitos, muitas linhas da tabela podem ser associadas a muitas outras linhas da tabela. As linhas relacionadas usando um relacionamento muito-para-muito podem ser consideradas colegas e o relacionamento é recíproco.
Por exemplo, no mesmo cenário escolar mencionado anteriormente, um único aluno pode se matricular em vários cursos e cada curso pode ter vários alunos. Esse tipo de relacionamento permite associações de dados mais complexas e é gerenciada usando o Power Apps no Dataverse.
Como as relações funcionam no Dataverse
As relações de tabela definem como as linhas de tabela podem ser relacionadas entre si no Dataverse. No nível mais simples, adicionar uma coluna de pesquisa a uma tabela cria uma nova relação de 1:N (um para muitos) entre as duas tabelas e permite que você coloque 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 simplesmente definir como as linhas podem ser relacionadas a outras linhas, as relações de tabela 1:N também fornecem dados para resolver as seguintes perguntas:
- Quando excluo uma linha, 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 nova linha relacionada no contexto de uma linha existente?
- Como as pessoas que visualizam uma linha podem visualizar as linhas associadas?
As tabelas também podem participar de uma relação N:N (muitos para muitos), em que qualquer número de linhas de duas tabelas podem ser associadas umas às outras.
Decidir se deseja usar relações de tabela ou conexões
As relações de tabela são metadados que fazem alterações no Dataverse. Essas relações permitem que as consultas recuperem dados relacionados com eficiência. Use relações de tabela para definir relações formais que definem a tabela ou que a maioria das linhas pode usar. Por exemplo, uma oportunidade sem um cliente em potencial não seria útil. A tabela de oportunidades no Dynamics 365 for Sales também tem uma relação N:N com a tabela concorrente, também disponível com o Dynamics 365 for Sales. Isso permite que vários concorrentes sejam adicionados à oportunidade. Talvez você queira capturar esses dados e criar um relatório que mostre os concorrentes.
Há outros tipos menos formais de relações entre linhas que são chamadas de conexões. Por exemplo, pode ser útil saber se dois contatos são casados, ou talvez sejam amigos fora do trabalho, ou talvez um contato usado para trabalhar para outra conta. A maioria das empresas não gerará relatórios usando esse tipo de informação ou exigirá que elas sejam inseridas, portanto, provavelmente não vale a pena criar relações de tabela. Mais informações: Configurar funções de conexão
Tipos de relações de tabela
Ao exibir relações no Power Apps, você pode pensar que há três tipos de relações de tabela. Na verdade, há apenas dois, conforme mostrado na tabela a seguir.
| Tipo de relação | Description |
|---|---|
| 1:N (um para muitos) | Uma relação de tabela em que uma linha de tabela para a tabela Primária pode ser associada a muitas outras linhas de tabela relacionadas devido a uma coluna de pesquisa na tabela relacionada. Ao exibir uma linha de tabela primária, você pode ver uma lista das linhas de tabela relacionadas associadas a ela. No portal do Power Apps, a tabela Atual representa a tabela primária. |
| N:N (Muitos para Muitos) | Uma relação de tabela que depende de uma tabela de Relação especial, às vezes chamada de tabela Intersect, para que muitas linhas de uma tabela possam estar relacionadas a muitas linhas de outra tabela. Ao exibir linhas de qualquer tabela em uma relação N:N, você pode ver uma lista de todas as linhas da outra tabela relacionadas a ela. |
O tipo de relação 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 filho , tem uma coluna de pesquisa que permite armazenar uma referência a uma linha da tabela primária, às vezes chamada de tabela pai . Uma relação N:1 é apenas uma relação 1:N exibida da tabela relacionada.
Comportamento das relações de tabela
Comportamentos para tabelas relacionadas são importantes porque ajudam a garantir a integridade dos dados e podem automatizar processos de negócios para você.
Preserve a integridade dos dados
Existem algumas tabelas para dar suporte a outras tabelas. Eles não fazem sentido por conta própria. Geralmente, eles têm uma coluna de pesquisa necessária para vincular à tabela principal à qual oferecem suporte. O que deve acontecer quando uma linha primária é excluída?
Você pode usar o comportamento de relação para definir o que acontece com linhas relacionadas de acordo com as regras da sua empresa. Mais informações: Adicionar comportamento de relacionamento avançado
Automatize os processos empresariais
Digamos que você tenha um novo vendedor e queira atribuir a eles várias contas existentes atualmente atribuídas a outro vendedor. Cada linha de conta pode ter várias atividades de tarefa associadas a ela. Você pode localizar facilmente as contas ativas que deseja reatribuir e atribuí-las ao novo vendedor. Mas o que deve acontecer para qualquer uma das atividades de tarefa associadas à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 se aplicam apenas às linhas de tarefa 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.
Behaviors
Há vários tipos de comportamentos que podem ser aplicados quando ocorrem determinadas ações.
| Comportamento | Description |
|---|---|
| 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 | Description | 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 Cascata Nenhum |
| 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 Cascata Nenhum |
| 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 Cascata Nenhum |
| excluir | O que deve ocorrer quando a linha da tabela primária é excluída? | Todos em Cascata Remover Vínculo 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 Cascata Nenhum |
| Mesclar | O que deve ocorrer quando uma linha da tabela primária não é mesclada? | Todos em Cascata Cascata Nenhum |
| 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 Cascade None |
Observação
As ações Atribuir, Excluir, Mesclar e Reparenciar não sã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.
Ao executar uma atribuição, todos os fluxos de trabalho ou regras de negócios atualmente ativos nas linhas são desativados automaticamente quando ocorre a reatribuição. 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 |
Cascade Nenhum |
| excluir | Todos em Cascata | RemoveLink Restringir |
| Reassociar | Todos em Cascata De Propriedade do Usuário em Cascata Cascata Ativa |
Cascade None |
| Compartilhar | Todos em Cascata De Propriedade do Usuário em Cascata Cascata Ativa |
Cascata Nenhuma |
| Descompartilhar | Todos em Cascata De Propriedade do Usuário em Cascata Cascata Ativa |
Cascade Nenhum |
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á alguns casos em que a pesquisa na tabela relacionada pode permitir uma relação 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 você não pode ter uma relação com nenhuma ação definida como Cascade All, Cascade Active ou Cascade User-Owned entre uma tabela personalizada primária 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 dos comportamentos em cascata de Reparent e Share é útil quando você deseja fornecer acesso a linhas em tabelas relacionadas. Mas pode haver uma alteração no processo ou design que requer uma alteração das configurações de comportamento em cascata.
Quando uma relação de tabela utiliza Reparent ou Share e o comportamento em cascata é alterado para Cascade None, a relação de tabela impede que novas alterações de permissão se propaguem para as tabelas filho relacionadas. Além disso, as permissões herdadas 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. Esta limpeza de dados não afeta nenhum usuário que recebeu acesso diretamente a uma tabela, mas remove o acesso de quem recebeu acesso apenas através de herança.
É assim que funciona a limpeza dos direitos de acesso herdados:
- Identifica e coleta todas as tabelas que estavam em um relacionamento em cascata com o primário atualizado.
- Identifica e coleta os usuários que receberam acesso às tabelas relacionadas por meio do acesso herdado.
- Verifica se os usuários receberam acesso direto a uma tabela relacionada e os remove da coleção.
- 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 ser bem-sucedida. Saiba mais sobre como limpar o acesso herdado
Consulte 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 Muitos-para-muitos (N:N) entre tabelas