Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As relações de tabela no Microsoft Dataverse definem as maneiras pelas quais as linhas da tabela podem ser associadas a linhas de outras tabelas ou da mesma tabela. Existem dois tipos de relações de tabela:
Relações um-para-muitos
Numa relação entre tabelas um-para-muitos, muitas linhas da tabela de referência (relacionadas) podem ser associadas a uma única linha da tabela referenciada (primária). A linha da tabela referenciada às vezes é chamada de "pai" e as linhas da tabela de referência são chamadas de "filhos". Uma relação muitos-para-um é apenas a perspetiva subordinada de uma relação um-para-muitos.
Por exemplo, num cenário escolar, poderão ser ministrados vários cursos numa única sala de aula, pelo que a tabela de classes teria uma relação de um para muitos com a tabela do curso.
Relações Muitos para muitos
Numa relação entre tabelas muitos para muitos, muitas linhas da tabela podem ser associadas a muitas outras linhas da tabela. As linhas relacionadas que utilizam uma relação muitos-para-muitos podem ser considerados elementos e a relação é recíproca.
Por exemplo, no mesmo cenário escolar mencionado anteriormente, um único aluno pode se inscrever em vários cursos, e cada curso pode ter vários alunos. Esse tipo de relacionamento permite associações de dados mais complexas e é gerenciado usando o Power Apps no Dataverse.
Como funcionam os relacionamentos no Dataverse
As relações de tabela definem como as linhas da 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 1:N (um-para-muitos) entre as duas tabelas e permite colocar essa coluna de pesquisa em um formulário. Com a coluna de pesquisa, os utilizadores podem associar várias linhas subordinadas dessa tabela a uma única linha de 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 abordar as seguintes perguntas:
- 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 quando crio uma nova linha relacionada no contexto de uma linha existente?
- Como é que as pessoas que visualizam uma linha podem ver as linhas associadas?
As tabelas também podem participar de uma relação N:N (muitos-para-muitos), onde qualquer número de linhas de duas tabelas pode ser associado umas com as outras.
Decidir se deseja usar relações de tabela ou conexões
Relações de tabela são metadados que fazem alterações no Dataverse. Essas relações permitem que as consultas recuperem dados relacionados de forma eficiente. 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 potencial cliente não seria útil. A tabela de oportunidades no Dynamics 365 for Sales também tem uma relação N:N com a tabela do 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.
Existem 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 gera relatórios usando esse tipo de informação ou exige que ela seja inserida, então provavelmente não vale a pena criar relações de tabela. Para obter mais informações: Configurar funções de conexão
Tipos de relações de tabela
Quando visualiza relações no Power Apps, poderá pensar que existem três tipos de relações de tabela. Na verdade, existem apenas dois, como mostra a 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 visualizar uma linha de tabela primária, você pode ver uma lista das linhas de tabela relacionadas que estão 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 Relacionamento especial, às vezes chamada de tabela Intersect, de modo que muitas linhas de uma tabela podem ser relacionadas a muitas linhas de outra tabela. Ao visualizar linhas de qualquer tabela em uma relação N:N, você pode ver uma lista de quaisquer 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. Relações 1:N realmente existem entre tabelas e referem-se a cada tabela como uma tabela primária/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 vista a partir da tabela relacionada.
Comportamento de relacionamento entre tabelas
Os comportamentos para tabelas relacionadas são importantes porque ajudam a garantir a integridade dos dados e podem automatizar os processos de negócios para você.
Preservar a integridade dos dados
Algumas tabelas existem para suportar outras tabelas. Eles não fazem sentido por si só. Normalmente, têm uma coluna de pesquisa necessária para associar à tabela principal que suportam. O que deve acontecer quando uma linha primária é excluída?
Você pode usar o comportamento de relacionamento para definir o que acontece com as linhas relacionadas de acordo com as regras do seu negócio. Mais informações: Adicionar comportamento avançado da relação
Automatize os processos de negócios
Digamos que você tenha um novo vendedor e queira atribuir a ele um número de contas existentes atualmente atribuídas a outro vendedor. Cada linha de conta pode ter várias atividades de tarefa associadas a ela. Você pode facilmente localizar 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? 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 às linhas de tarefas associadas à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.
- Reatribua todas as tarefas atualmente atribuídas 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.
Behaviors
Existem vários tipos de comportamento que podem ser aplicados quando ocorrem determinadas ações.
| Comportamento | Description |
|---|---|
| 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 faça nada. |
| Remover Ligaçã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:
| Coluna | Description | 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 Remover link Limitar |
| Cancelar compartilhamento | 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 |
| Unir | 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 |
Observação
As ações Atribuir, Excluir, Mesclar e Redirecionar não sã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.
Ao executar uma atribuição, todos os fluxos de trabalho ou regras de negócios que estão atualmente ativos nas linhas são automaticamente desativados quando a reatribuição ocorre. O novo proprietário da linha tem 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 | RemoveLink Limitar |
| 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 |
| Cancelar compartilhamento | 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. 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 procura 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 num relacionamento com uma tabela de sistema relacionada em cascata. Isso significa que você não pode ter um relacionamento com qualquer ação definida como Cascade All, Cascade Ative ou Cascade User-Owned entre uma tabela personalizada primária e uma tabela de 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 mudança no processo ou design que requer uma mudança das configurações de comportamento em cascata.
Quando uma relação de tabela usa Reparent ou Share e o comportamento em cascata é alterado para Cascade None, a relação de tabela impede que quaisquer novas alterações de permissão sejam feitas em cascata para as tabelas filhas 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 é 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 afeta nenhum utilizador que tenha recebido acesso direto a uma tabela, mas remove o acesso de qualquer pessoa que tenha recebido acesso apenas por herança.
É assim que funciona a limpeza de direitos de acesso herdados:
- Identifica e recolhe todas as tabelas que estavam numa relação em cascata com o principal atualizado.
- Identifica e coleta os usuários aos quais foi concedido acesso às tabelas relacionadas por meio de acesso herdado.
- Verifica os usuários que receberam acesso direto a uma tabela relacionada e os remove da coleção.
- Remove o acesso herdado aos utilizadores recolhidos nas tabelas recolhidas.
Após a execução do processo de limpeza, os utilizadores que conseguiam acessar tabelas relacionadas apenas devido ao recurso de cascada já não conseguem aceder às linhas, assegurando 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
Monitorizar trabalhos do sistema
Criar e editar relações 1:N (um-para-muitos) ou N:1 (muitos-para-um)
Criar relações entre tabelas Muitos para muitos (N:N)