--- title: Criar Relações Muitos-para-muitos description: Conecte registros em que muitos itens de ambos os lados podem ser vinculados usando objetos de junção. --- Relações muitos-para-muitos permitem conectar vários registros em ambos os lados. Por exemplo: muitas Pessoas podem trabalhar em muitos Projetos, e cada Projeto pode ter muitas Pessoas. **Recurso Beta**: As relações de junção estão atualmente em beta. Ative-as em **Settings → Community → Features** antes de seguir este guia. Este recurso também requer que o **Modo Avançado** esteja ativado (alternador no canto inferior esquerdo de Settings). ## Quando Usar Muitos-para-Muitos Use muitos-para-muitos quando ambos os lados de uma relação podem ter múltiplas conexões: | Relação | Exemplo | | -------------------- | ------------------------------------------------------------------------------------- | | Pessoas ↔ Projetos | Uma pessoa trabalha em vários projetos; um projeto tem vários membros da equipe | | Empresas ↔ Etiquetas | Uma empresa pode ter várias etiquetas; uma etiqueta pode se aplicar a várias empresas | | Produtos ↔ Pedidos | Um produto pode estar em vários pedidos; um pedido contém vários produtos | ## Como Funciona A Twenty usa um padrão de **objeto de junção** para relações muitos-para-muitos. Um objeto de junção fica entre dois objetos e mantém as conexões: ``` People ←→ Project Assignments ←→ Projects ``` O objeto **Atribuições de Projeto** (junção) tem: * Uma relação com Pessoas (muitos-para-um) * Uma relação com Projetos (muitos-para-um) Ao ativar o alternador de relação de junção, a Twenty exibe os registros vinculados diretamente em vez de mostrar os registros intermediários de junção. ## Pré-requisitos 1. **Ative Relações de Junção em Recursos Beta**: Vá para **Settings → Community → Features** e ative **Junction Relations** 2. **Ative o Modo Avançado**: Ative o **Modo Avançado** no canto inferior esquerdo da barra lateral de Settings 3. Planeje seu modelo de dados: * Quais dois objetos você está conectando? * Qual deve ser o nome do objeto de junção? ## Etapa 1: Criar o Objeto de Junção Primeiro, crie o objeto intermediário que manterá as conexões. 1. Vá a **Definições → Modelo de Dados** 2. Clique **+ Adicionar objeto** 3. Dê um nome descritivo (por exemplo, "Atribuição de Projeto", "Membro da Equipe", "Pedido de Produto") 4. Ative a opção "Ignorar a criação de um campo Nome" Novo objeto pivô 5. Clique em **Salvar** **Convenção de nomenclatura**: Use um nome que descreva a relação, como "Atribuição de Projeto" ou "Participação na Equipe". Isso torna o modelo de dados mais fácil de entender. ## Etapa 2: Crie relações entre os objetos e o objeto de junção Adicione campos de relação de cada um dos seus dois objetos ao objeto de junção. ### Primeira Relação (Objeto A → Junção) 1. Selecione seu primeiro objeto em **Settings → Data Model** 2. Clique em **+ Adicionar relação** 3. Selecione o objeto de junção (por exemplo, "Atribuições de Projeto") 4. Defina o tipo de relação como **Um-para-muitos** (uma pessoa pode se vincular a muitas atribuições) 5. Nomeie os campos: * Campo em Pessoas: por exemplo, "Atribuições de Projeto" * Campo na junção: por exemplo, "Pessoa" 6. Clique em **Salvar** ### Segunda Relação (Objeto B → Junção) 1. Selecione seu segundo objeto em **Settings → Data Model** 2. Clique em **+ Adicionar relação** 3. Selecione o objeto de junção (por exemplo, "Atribuições de Projeto") 4. Defina o tipo de relação como **Um-para-muitos** (um projeto pode se vincular a muitas atribuições) 5. Ative **"Esta é uma relação com um objeto de junção"** 6. Nomeie os campos: * Campo na junção: por exemplo, "Projeto" * Campo em Projetos: por exemplo, "Membros da Equipe" 7. Clique em **Salvar** ## Etapa 3: Configurar a Exibição da Relação de Junção Agora configure os objetos de origem para exibir diretamente os registros vinculados, ignorando o objeto de junção intermediário. 1. Vá a **Definições → Modelo de Dados** 2. Selecione o primeiro objeto (por exemplo, "Pessoas") 3. Encontre o campo de relação apontando para o objeto de junção (por exemplo, "Atribuições de Projeto") 4. Clique para editar o campo 5. Ative **"Esta é uma relação com um objeto de junção"** 6. Selecione a **Relação de destino** (por exemplo, "Projeto" — o campo na junção que aponta para o outro lado) 7. Clique em **Salvar** ## Resultado Após a configuração: * Em um registro de **Pessoa**, o campo "Atribuições de Projeto" exibe **Projetos** diretamente (não registros de atribuição) * Em um registro de **Projeto**, o campo "Membros da Equipe" exibe **Pessoas** diretamente O objeto de junção ainda existe e armazena as conexões, mas a interface apresenta uma visualização muitos-para-muitos mais limpa. ## Exemplo: Pessoas ↔ Projetos Aqui está um passo a passo completo: ### Criar o Objeto de Junção * Nome: **Atribuição de Projeto** * Descrição: "Vincula pessoas aos projetos em que trabalham" ### Adicionar Relações 1. **Pessoas → Atribuição de Projeto** * Tipo: Um-para-muitos * Campo em Pessoas: "Atribuições de Projeto" * Campo em Atribuição: "Pessoa" 2. **Projetos → Atribuição de Projeto** * Tipo: Um-para-muitos * Campo em Projetos: "Membros da Equipe" * Campo em Atribuição: "Projeto" ### Configurar Exibição de Junção 1. No objeto **Pessoas**: * Edite o campo "Atribuições de Projeto" * Ative o alternador de junção * Destino: "Projeto" 2. No objeto **Projetos**: * Edite o campo "Membros da Equipe" * Ative o alternador de junção * Destino: "Pessoa" ### Use * Abra um registro de Pessoa → Veja seus Projetos diretamente * Abra um registro de Projeto → Veja os membros da equipe diretamente * Crie novas conexões de qualquer um dos lados ## Adicionando Dados Extras às Conexões Como o objeto de junção é um objeto real, você pode adicionar campos personalizados para armazenar informações sobre a relação: * **Função**: "Desenvolvedor", "Designer", "Gerente" * **Data de Início**: Quando a pessoa entrou no projeto * **Horas Alocadas**: Horas semanais neste projeto Para acessar esses dados, navegue diretamente até o objeto de junção ou consulte-o via API. ## Limitações * **Importação/Exportação CSV**: A importação de relações muitos-para-muitos diretamente não é suportada. Em vez disso, importe registros para o objeto de junção. * **Filtros**: A filtragem por relações muitos-para-muitos pode ter opções limitadas. ## Relacionados * [Campos de Relação](/l/pt/user-guide/data-model/capabilities/relation-fields) — tipos de relação explicados * [Criar Objetos Personalizados](/l/pt/user-guide/data-model/how-tos/create-custom-objects) — como criar objetos * [Criar Campos de Relação](/l/pt/user-guide/data-model/how-tos/create-relation-fields) — configuração básica de relação