{"id":1698,"date":"2026-03-26T17:55:23","date_gmt":"2026-03-26T17:55:23","guid":{"rendered":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/"},"modified":"2026-03-26T17:55:23","modified_gmt":"2026-03-26T17:55:23","slug":"resolving-many-to-many-relationships-erd-modeling","status":"publish","type":"post","link":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/","title":{"rendered":"Resolvendo Relacionamentos Muitos para Muitos: T\u00e9cnicas Claras para Modelagem de ERD"},"content":{"rendered":"<p>No cen\u00e1rio da arquitetura de dados, poucos conceitos geram mais confus\u00e3o do que o relacionamento muitos para muitos. Ao projetar um Diagrama Entidade-Relacionamento (ERD), encontrar uma situa\u00e7\u00e3o em que uma entidade se conecta a m\u00faltiplas inst\u00e2ncias de outra, e vice-versa, exige uma abordagem estrutural espec\u00edfica. Sistemas gerenciadores de bancos de dados relacionais n\u00e3o suportam nativamente associa\u00e7\u00f5es diretas muitos para muitos. Eles exigem uma estrutura intermedi\u00e1ria para manter a integridade dos dados e garantir consultas eficientes. Este guia explora os m\u00e9todos autoritativos para resolver essas associa\u00e7\u00f5es, assegurando que seu modelo de dados permane\u00e7a robusto, escalon\u00e1vel e normalizado.<\/p>\n<p>Independentemente de voc\u00ea estar projetando um sistema para registros acad\u00eamicos, gest\u00e3o de estoque ou permiss\u00f5es de usu\u00e1rios, os princ\u00edpios para resolver essas cardinalidades permanecem constantes. Compreender os mecanismos subjacentes evita anomalias futuras e simplifica a manuten\u00e7\u00e3o. Vamos al\u00e9m das defini\u00e7\u00f5es superficiais para examinar os requisitos estruturais, regras de normaliza\u00e7\u00e3o e estrat\u00e9gias de implementa\u00e7\u00e3o que definem a modelagem profissional de dados.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img alt=\"Charcoal sketch infographic illustrating how to resolve many-to-many relationships in Entity-Relationship Diagrams using a junction table, showing Students and Courses entities connected through an Enrollments bridge table with foreign keys, composite primary keys, and crow's foot cardinality notation\" decoding=\"async\" src=\"https:\/\/www.go-diagram.com\/wp-content\/uploads\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg\"\/><\/figure>\n<\/div>\n<h2>\ud83d\udd0d Compreendendo a Cardinalidade em ERDs<\/h2>\n<p>A cardinalidade define a rela\u00e7\u00e3o num\u00e9rica entre entidades em um banco de dados. Ela especifica o n\u00famero de inst\u00e2ncias de uma entidade que podem ou devem estar associadas a cada inst\u00e2ncia de outra entidade. Na nota\u00e7\u00e3o de ERD, isso \u00e9 frequentemente representado por linhas que conectam entidades, com os p\u00e9s de corvo indicando o lado &#8220;muitos&#8221; e linhas retas ou marcas simples indicando o lado &#8220;um&#8221;.<\/p>\n<p>Existem tr\u00eas cardinalidades principais:<\/p>\n<ul>\n<li><strong>Um para Um (1:1):<\/strong> Um \u00fanico registro na Entidade A est\u00e1 relacionado a um \u00fanico registro na Entidade B. Exemplo: Uma pessoa e sua passaporte.<\/li>\n<li><strong>Um para Muitos (1:M):<\/strong> Um \u00fanico registro na Entidade A est\u00e1 relacionado a m\u00faltiplos registros na Entidade B. Exemplo: Um cliente fazendo m\u00faltiplos pedidos.<\/li>\n<li><strong>Muitos para Muitos (M:N):<\/strong> M\u00faltiplos registros na Entidade A est\u00e3o relacionados a m\u00faltiplos registros na Entidade B. Exemplo: Alunos matriculados em m\u00faltias disciplinas, e disciplinas contendo m\u00faltiplos alunos.<\/li>\n<\/ul>\n<p>Embora os relacionamentos 1:1 e 1:M sejam simples de implementar em um esquema f\u00edsico de banco de dados, o relacionamento M:N apresenta um desafio \u00fanico. A teoria relacional determina que uma c\u00e9lula de tabela deve conter apenas valores at\u00f4micos. Uma liga\u00e7\u00e3o direta entre duas tabelas onde uma \u00fanica linha na Tabela A poderia teoricamente referenciar m\u00faltiplas linhas na Tabela B viola esse princ\u00edpio na camada f\u00edsica.<\/p>\n<h2>\ud83d\udeab Por que os Relacionamentos Diretos M:M Falham nos Modelos Relacionais<\/h2>\n<p>O modelo relacional, estabelecido por E.F. Codd, baseia-se no conceito de rela\u00e7\u00f5es (tabelas) em que cada coluna representa um atributo espec\u00edfico e cada linha representa uma inst\u00e2ncia \u00fanica. Existem duas raz\u00f5es principais pelas quais uma liga\u00e7\u00e3o muitos para muitos direta \u00e9 imposs\u00edvel em um banco de dados relacional padr\u00e3o:<\/p>\n<ul>\n<li><strong>Falta de Suporte Nativo:<\/strong>Sistemas de gerenciamento de banco de dados n\u00e3o permitem que uma coluna de chave estrangeira contenha m\u00faltiplos valores. Uma chave estrangeira deve apontar para uma \u00fanica chave prim\u00e1ria em outra tabela. Ela n\u00e3o pode apontar para uma lista de chaves.<\/li>\n<li><strong>Anomalias de Inser\u00e7\u00e3o e Exclus\u00e3o:<\/strong>Se voc\u00ea tentar armazenar m\u00faltiplos IDs em uma \u00fanica c\u00e9lula (por exemplo, &#8220;Student_ID: 101, 102, 103&#8221;), voc\u00ea cria uma viola\u00e7\u00e3o da Primeira Forma Normal (1FN). Isso torna as consultas, atualiza\u00e7\u00f5es e exclus\u00f5es de relacionamentos espec\u00edficos computacionalmente custosas e propensas a erros.<\/li>\n<\/ul>\n<p>Consequentemente, para armazenar esses dados de forma eficiente, a pr\u00f3pria rela\u00e7\u00e3o deve ser tratada como uma entidade. Essa transforma\u00e7\u00e3o \u00e9 a t\u00e9cnica fundamental para resolver a complexidade.<\/p>\n<h2>\ud83e\uddf1 T\u00e9cnica 1: A Entidade Associativa (Tabela de Jun\u00e7\u00e3o)<\/h2>\n<p>A solu\u00e7\u00e3o padr\u00e3o para resolver um relacionamento muitos para muitos \u00e9 a cria\u00e7\u00e3o de uma entidade associativa, comumente conhecida como tabela de jun\u00e7\u00e3o ou tabela-ponte. Essa tabela est\u00e1 fisicamente entre as duas entidades principais e transforma a conex\u00e3o direta em duas rela\u00e7\u00f5es um para muitos.<\/p>\n<p>Quando voc\u00ea introduz uma tabela de jun\u00e7\u00e3o, a rela\u00e7\u00e3o M:N original \u00e9 decomposta em:<\/p>\n<ul>\n<li>Uma rela\u00e7\u00e3o um para muitos entre a Entidade A e a Tabela de Jun\u00e7\u00e3o.<\/li>\n<li>Uma rela\u00e7\u00e3o um para muitos entre a Entidade B e a Tabela de Jun\u00e7\u00e3o.<\/li>\n<\/ul>\n<p><strong>Estrutura de uma Tabela de Jun\u00e7\u00e3o:<\/strong><\/p>\n<ul>\n<li><strong>Chaves Estrangeiras:<\/strong>Ela deve conter pelo menos duas colunas de chave estrangeira. Uma referencia a chave prim\u00e1ria da Entidade A, e a outra referencia a chave prim\u00e1ria da Entidade B.<\/li>\n<li><strong>Chave Prim\u00e1ria Composta:<\/strong>Freq\u00fcentemente, a combina\u00e7\u00e3o dessas duas chaves estrangeiras serve como chave prim\u00e1ria para a tabela de jun\u00e7\u00e3o. Isso garante que um par espec\u00edfico de entidades n\u00e3o possa ser vinculado mais de uma vez, a menos que a rela\u00e7\u00e3o seja intrinsecamente multivalorada.<\/li>\n<li><strong>Chaves de substitui\u00e7\u00e3o:<\/strong>Em alguns casos, um ID \u00fanico e autoincrementado \u00e9 adicionado \u00e0 tabela de jun\u00e7\u00e3o. Isso \u00e9 \u00fatil se a rela\u00e7\u00e3o puder ter m\u00faltiplas inst\u00e2ncias com atributos diferentes (por exemplo, um aluno pode estar matriculado em um curso v\u00e1rias vezes com notas diferentes em anos diferentes).<\/li>\n<\/ul>\n<p><strong>Cen\u00e1rio de exemplo:<\/strong><\/p>\n<p>Considere um sistema de biblioteca. Um <strong>Livro<\/strong> pode ser emprestado por muitos <strong>Usu\u00e1rios<\/strong>. Um <strong>Usu\u00e1rio<\/strong> pode emprestar muitos <strong>Livros<\/strong>.<\/p>\n<ul>\n<li>Sem resolu\u00e7\u00e3o: voc\u00ea n\u00e3o pode vincular diretamente uma linha de livro a m\u00faltiplas linhas de usu\u00e1rio.<\/li>\n<li>Com resolu\u00e7\u00e3o: crie uma <strong>Registro_de_Emprestimo<\/strong> tabela.<\/li>\n<li>O <strong>Registro_de_Emprestimo<\/strong> cont\u00e9m <code>ID_Livro<\/code> e <code>ID_Usuario<\/code>.<\/li>\n<\/ul>\n<p>Essa estrutura permite que o banco de dados rastreie exatamente qual usu\u00e1rio tem qual livro em qualquer momento, sem duplicar dados de livro ou usu\u00e1rio.<\/p>\n<h2>\ud83d\udcdd T\u00e9cnica 2: Manipulando atributos nas rela\u00e7\u00f5es<\/h2>\n<p>Uma distin\u00e7\u00e3o cr\u00edtica na modelagem de ERD \u00e9 se a rela\u00e7\u00e3o entre entidades carrega seus pr\u00f3prios dados. Em uma liga\u00e7\u00e3o simples, a conex\u00e3o existe ou n\u00e3o existe. No entanto, em muitos cen\u00e1rios do mundo real, a pr\u00f3pria rela\u00e7\u00e3o possui propriedades.<\/p>\n<p>Por exemplo, em um <strong>Projeto<\/strong> e <strong>Funcion\u00e1rio<\/strong> cen\u00e1rio, um funcion\u00e1rio pode trabalhar em m\u00faltiplos projetos, e um projeto tem m\u00faltiplos funcion\u00e1rios. Mas a rela\u00e7\u00e3o pode incluir:<\/p>\n<ul>\n<li><strong>Cargo:<\/strong> O funcion\u00e1rio \u00e9 desenvolvedor, designer ou gerente neste projeto espec\u00edfico?<\/li>\n<li><strong>Horas Alocadas:<\/strong> Quantas horas por semana s\u00e3o atribu\u00eddas a este projeto?<\/li>\n<li><strong>Data de In\u00edcio:<\/strong> Quando come\u00e7ou esta atribui\u00e7\u00e3o?<\/li>\n<\/ul>\n<p>Se voc\u00ea tratar a rela\u00e7\u00e3o meramente como uma bandeira bin\u00e1ria, perder\u00e1 esses dados essenciais. A tabela de jun\u00e7\u00e3o torna-se o local perfeito para armazenar esses atributos.<\/p>\n<p><strong>Regras de Implementa\u00e7\u00e3o:<\/strong><\/p>\n<ul>\n<li>N\u00e3o armazene atributos de relacionamento nas entidades pais. Eles n\u00e3o pertencem apenas ao Projeto, nem apenas ao Funcion\u00e1rio.<\/li>\n<li>Coloque todos os dados espec\u00edficos do relacionamento na tabela de jun\u00e7\u00e3o.<\/li>\n<li>Garanta que a tabela de jun\u00e7\u00e3o tenha um identificador exclusivo (composto ou fict\u00edcio) para permitir atualiza\u00e7\u00f5es desses atributos sem afetar as entidades pais.<\/li>\n<\/ul>\n<p>Esta abordagem garante a normaliza\u00e7\u00e3o de dados. Se voc\u00ea adicionasse um <code>Cargo<\/code> coluna na tabela de <strong>Funcion\u00e1rio<\/strong> tabela, criaria redund\u00e2ncia se o funcion\u00e1rio tivesse m\u00faltiplos cargos em projetos diferentes. A tabela de jun\u00e7\u00e3o isola essa varia\u00e7\u00e3o.<\/p>\n<h2>\u2696\ufe0f T\u00e9cnica 3: Normaliza\u00e7\u00e3o e Integridade de Dados<\/h2>\n<p>Resolver relacionamentos M:N n\u00e3o \u00e9 apenas sobre vincular tabelas; \u00e9 sobre seguir princ\u00edpios de normaliza\u00e7\u00e3o para prevenir anomalias de dados. A Terceira Forma Normal (3NF) \u00e9 o objetivo padr\u00e3o para a maioria dos sistemas transacionais.<\/p>\n<p><strong>Requisitos da Terceira Forma Normal (3NF):<\/strong><\/p>\n<ul>\n<li>A tabela deve estar na Segunda Forma Normal (2NF).<\/li>\n<li>Todos os atributos n\u00e3o-chave devem depender apenas da chave prim\u00e1ria.<\/li>\n<\/ul>\n<p>Ao criar uma tabela de jun\u00e7\u00e3o, voc\u00ea garante que os dados do relacionamento dependam da chave composta da tabela de jun\u00e7\u00e3o, e n\u00e3o das chaves individuais das entidades. Isso elimina as depend\u00eancias transitivas.<\/p>\n<p><strong>Integridade Referencial:<\/strong><\/p>\n<p>Restri\u00e7\u00f5es de chave estrangeira s\u00e3o essenciais na tabela de jun\u00e7\u00e3o. Elas imp\u00f5em as seguintes regras:<\/p>\n<ul>\n<li>Um <code>ID_Livro<\/code> no registro de empr\u00e9stimos deve existir na tabela de <strong>Livros<\/strong> tabela.<\/li>\n<li>Um <code>ID_Patrono<\/code> no registro de empr\u00e9stimos deve existir na tabela <strong>Patronos<\/strong> tabela.<\/li>\n<\/ul>\n<p>Isso evita registros \u00f3rf\u00e3os. Voc\u00ea n\u00e3o pode registrar um evento de empr\u00e9stimo para um livro que n\u00e3o existe no cat\u00e1logo. Motores de banco de dados imp\u00f5em isso por meio de a\u00e7\u00f5es de <code>CASCADE<\/code> ou <code>RESTRICT<\/code> a\u00e7\u00f5es na exclus\u00e3o.<\/p>\n<h2>\ud83d\udcca Compara\u00e7\u00e3o dos Tipos de Relacionamento<\/h2>\n<p>Visualizar as diferen\u00e7as entre os tipos de relacionamento ajuda na sele\u00e7\u00e3o da estrat\u00e9gia de modelagem correta. A tabela abaixo resume os requisitos estruturais e a complexidade de implementa\u00e7\u00e3o.<\/p>\n<table>\n<thead>\n<tr>\n<th>Tipo de Relacionamento<\/th>\n<th>Implementa\u00e7\u00e3o F\u00edsica<\/th>\n<th>Localiza\u00e7\u00e3o da Chave Prim\u00e1ria<\/th>\n<th>Complexidade<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Um para Um (1:1)<\/td>\n<td>Chave estrangeira em uma tabela<\/td>\n<td>Qualquer tabela<\/td>\n<td>Baixa<\/td>\n<\/tr>\n<tr>\n<td>Um para Muitos (1:M)<\/td>\n<td>Chave estrangeira na tabela &#8220;muitos&#8221;<\/td>\n<td>Tabela principal<\/td>\n<td>M\u00e9dia<\/td>\n<\/tr>\n<tr>\n<td>Muitos para Muitos (M:N)<\/td>\n<td>Tabela de jun\u00e7\u00e3o separada<\/td>\n<td>Tabela de jun\u00e7\u00e3o (composta)<\/td>\n<td>Alta<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Como mostrado, o relacionamento M:N exige a maior sobrecarga estrutural. No entanto, essa sobrecarga \u00e9 necess\u00e1ria para a integridade dos dados. O custo de uma jun\u00e7\u00e3o extra durante uma consulta \u00e9 frequentemente superado pelo custo da inconsist\u00eancia de dados em um esquema mal modelado.<\/p>\n<h2>\ud83d\ude80 Considera\u00e7\u00f5es de Desempenho<\/h2>\n<p>Introduzir uma tabela de jun\u00e7\u00e3o adiciona uma camada de indire\u00e7\u00e3o \u00e0s suas consultas. Ao recuperar dados, voc\u00ea deve unir tr\u00eas tabelas em vez de duas. Em sistemas de alta volume, isso pode afetar o desempenho se n\u00e3o for gerenciado corretamente.<\/p>\n<ul>\n<li><strong>Indexa\u00e7\u00e3o:<\/strong>Cada chave estrangeira na tabela de jun\u00e7\u00e3o deve ser indexada. Isso permite que o motor do banco de dados localize rapidamente as linhas para uma entidade espec\u00edfica sem escanear toda a tabela de jun\u00e7\u00e3o.<\/li>\n<li><strong>\u00cdndices compostos:<\/strong>Em alguns casos, criar um \u00edndice na combina\u00e7\u00e3o de ambas as chaves estrangeiras \u00e9 mais eficiente do que \u00edndices separados. Isso suporta consultas que filtram por ambas as entidades simultaneamente.<\/li>\n<li><strong>Leitura versus escrita:<\/strong>As tabelas de jun\u00e7\u00e3o geralmente s\u00e3o intensivas em escrita se as rela\u00e7\u00f5es forem din\u00e2micas. Elas s\u00e3o intensivas em leitura ao gerar relat\u00f3rios. Certifique-se de que sua estrat\u00e9gia de indexa\u00e7\u00e3o suporte o padr\u00e3o de opera\u00e7\u00e3o dominante da sua aplica\u00e7\u00e3o.<\/li>\n<\/ul>\n<h2>\u26a0\ufe0f Armadilhas comuns e solu\u00e7\u00f5es<\/h2>\n<p>Mesmo modeladores experientes cometem erros ao resolver cardinalidades. O conhecimento dos erros comuns pode poupar um tempo significativo de reestrutura\u00e7\u00e3o posterior.<\/p>\n<h3>1. O erro da &#8220;coluna \u00fanica&#8221;<\/h3>\n<p>Tentar armazenar m\u00faltiplos IDs em uma \u00fanica coluna usando valores separados por v\u00edrgulas (por exemplo, &#8220;1, 2, 3&#8221;). Isso viola os princ\u00edpios de banco de dados e torna a consulta imposs\u00edvel sem fun\u00e7\u00f5es de an\u00e1lise de strings. Sempre use uma linha separada para cada inst\u00e2ncia de relacionamento.<\/p>\n<h3>2. Atributos redundantes<\/h3>\n<p>Copiar atributos das entidades pais para a tabela de jun\u00e7\u00e3o sem necessidade. Se um atributo pertence \u00e0 entidade (por exemplo, o nome de um aluno), ele pertence \u00e0 tabela de Aluno, e n\u00e3o \u00e0 tabela de Matr\u00edcula. Coloque apenas dados que descrevam o pr\u00f3prio link.<\/p>\n<h3>3. Ignorar a nulidade<\/h3>\n<p>Definir chaves estrangeiras como nulas quando deveriam ser obrigat\u00f3rias. Se uma rela\u00e7\u00e3o \u00e9 obrigat\u00f3ria (por exemplo, um Pedido deve ter um Cliente), a chave estrangeira n\u00e3o deve permitir valores nulos. Isso imp\u00f5e regras de neg\u00f3cios ao n\u00edvel do banco de dados.<\/p>\n<h3>4. Refer\u00eancias circulares<\/h3>\n<p>Criar uma tabela de jun\u00e7\u00e3o que se refere a si mesma desnecessariamente. Certifique-se de que a tabela de jun\u00e7\u00e3o ligue apenas as duas entidades distintas envolvidas na rela\u00e7\u00e3o. Evite criar loops que n\u00e3o tenham uma finalidade funcional.<\/p>\n<h2>\ud83c\udfa8 Melhores pr\u00e1ticas para representa\u00e7\u00e3o visual<\/h2>\n<p>Ao documentar seu ERD, a clareza \u00e9 fundamental. A representa\u00e7\u00e3o visual deve transmitir imediatamente a estrutura resolvida para qualquer pessoa que leia o diagrama.<\/p>\n<ul>\n<li><strong>Rotule a tabela de jun\u00e7\u00e3o:<\/strong>Nomeie a tabela de forma descritiva. Em vez de &#8220;Table3&#8221;, use &#8220;Student_Course_Enrollment&#8221;.<\/li>\n<li><strong>Indique a cardinalidade:<\/strong>Marque claramente as linhas que conectam a tabela de jun\u00e7\u00e3o \u00e0s entidades pais. Use o s\u00edmbolo de p\u00e9 de corvo no lado da tabela de jun\u00e7\u00e3o para mostrar a rela\u00e7\u00e3o &#8220;muitos&#8221; do ponto de vista da entidade pai.<\/li>\n<li><strong>Mostre os atributos:<\/strong>Se a tabela de jun\u00e7\u00e3o tiver atributos (como &#8220;Nota&#8221; ou &#8220;Data&#8221;), liste-os explicitamente no diagrama. Isso destaca que a rela\u00e7\u00e3o \u00e9 mais do que apenas uma liga\u00e7\u00e3o.<\/li>\n<li><strong>Use estilos de linha diferentes:<\/strong>Alguns ferramentas de modelagem permitem linhas tracejadas para rela\u00e7\u00f5es opcionais e linhas s\u00f3lidas para rela\u00e7\u00f5es obrigat\u00f3rias. A consist\u00eancia aqui ajuda na compreens\u00e3o.<\/li>\n<\/ul>\n<h2>\ud83d\udd04 Rela\u00e7\u00f5es recursivas e M:N<\/h2>\n<p>Ocasionalmente, uma rela\u00e7\u00e3o muitos para muitos existe dentro de uma \u00fanica entidade. Por exemplo, um <strong>Funcion\u00e1rio<\/strong> pode gerenciar m\u00faltiplos outros <strong>Funcion\u00e1rios<\/strong>, e esses funcion\u00e1rios podem gerenciar outros. Trata-se de uma rela\u00e7\u00e3o recursiva M:N.<\/p>\n<p>A resolu\u00e7\u00e3o permanece a mesma que em uma rela\u00e7\u00e3o M:N padr\u00e3o. Voc\u00ea ainda cria uma tabela de jun\u00e7\u00e3o, mas ambas as chaves estrangeiras nessa tabela referenciam a chave prim\u00e1ria da mesma entidade.<\/p>\n<ul>\n<li><strong>Entidade:<\/strong> Funcion\u00e1rio<\/li>\n<li><strong>Tabela de Jun\u00e7\u00e3o:<\/strong> Gest\u00e3o_Funcion\u00e1rios<\/li>\n<li><strong>FK1:<\/strong> ID_Gerente (Referencia Funcion\u00e1rio)<\/li>\n<li><strong>FK2:<\/strong> ID_Subordinado (Referencia Funcion\u00e1rio)<\/li>\n<\/ul>\n<p>Essa estrutura permite hierarquias organizacionais complexas sem violar as regras de normaliza\u00e7\u00e3o. Permite consultas que percorrem m\u00faltiplos n\u00edveis de profundidade gerencial.<\/p>\n<h2>\ud83d\udee1\ufe0f Restri\u00e7\u00f5es de Dados e Regras de Neg\u00f3cio<\/h2>\n<p>Restri\u00e7\u00f5es t\u00e9cnicas n\u00e3o s\u00e3o suficientes; as regras de neg\u00f3cio devem ser aplicadas. Uma tabela de jun\u00e7\u00e3o fornece um local natural para aplicar essas regras.<\/p>\n<ul>\n<li><strong>Restri\u00e7\u00f5es \u00danicas:<\/strong> Garanta que uma rela\u00e7\u00e3o espec\u00edfica n\u00e3o possa ser criada duas vezes, a menos que intencional. Por exemplo, um aluno n\u00e3o deveria estar matriculado na mesma turma de curso duas vezes no mesmo semestre. Uma restri\u00e7\u00e3o \u00fanica na combina\u00e7\u00e3o de Student_ID e Course_ID imp\u00f5e isso.<\/li>\n<li><strong>Restri\u00e7\u00f5es de Verifica\u00e7\u00e3o:<\/strong> Valide dados num\u00e9ricos. Por exemplo, as \u201cHoras_Alocadas\u201d em uma tabela de jun\u00e7\u00e3o de projetos devem ser maiores que zero e menores que 40.<\/li>\n<li><strong>Gatilhos:<\/strong> Em sistemas complexos, podem ser necess\u00e1rios gatilhos para atualizar tabelas de resumo. Se a tabela de jun\u00e7\u00e3o mudar, uma tabela de resumo na entidade pai (por exemplo, \u201cTotal_Projetos_Por_Funcion\u00e1rio\u201d) pode precisar ser atualizada automaticamente.<\/li>\n<\/ul>\n<h2>\ud83d\udcc8 Evolu\u00e7\u00e3o do Modelo<\/h2>\n<p>Modelos evoluem conforme os requisitos mudam. Uma rela\u00e7\u00e3o que come\u00e7a como muitos para muitos pode se simplificar para um para muitos se uma regra de neg\u00f3cio mudar. Por exemplo, se uma pol\u00edtica mudar de forma que um aluno s\u00f3 possa se matricular em um curso por vez, a tabela de jun\u00e7\u00e3o pode ser mesclada de volta na tabela de alunos.<\/p>\n<p>No entanto, come\u00e7ar com a tabela de jun\u00e7\u00e3o geralmente \u00e9 mais seguro. Ela oferece a m\u00e1xima flexibilidade. Se o requisito mudar posteriormente para permitir m\u00faltiplas matr\u00edculas, o esquema j\u00e1 estar\u00e1 preparado. Se voc\u00ea come\u00e7ar com uma tabela mesclada, precisar\u00e1 refatorar posteriormente.<\/p>\n<h2>\ud83d\udcdd Resumo dos Pontos Principais<\/h2>\n<p>Resolver rela\u00e7\u00f5es muitos para muitos \u00e9 uma habilidade fundamental no design de bancos de dados. Exige a cria\u00e7\u00e3o de uma estrutura intermedi\u00e1ria para manter a integridade dos dados e suportar consultas eficientes. A tabela de jun\u00e7\u00e3o \u00e9 a solu\u00e7\u00e3o padr\u00e3o, dividindo associa\u00e7\u00f5es complexas em links um para muitos gerenci\u00e1veis.<\/p>\n<ul>\n<li><strong>Sempre resolva M:N:<\/strong> Nunca tente armazenar m\u00faltiplas chaves estrangeiras em uma \u00fanica coluna.<\/li>\n<li><strong>Use chaves compostas:<\/strong> A combina\u00e7\u00e3o de chaves estrangeiras geralmente serve como identificador \u00fanico para a rela\u00e7\u00e3o.<\/li>\n<li><strong>Armazene dados de relacionamento:<\/strong>Coloque atributos espec\u00edficos para a liga\u00e7\u00e3o na tabela de jun\u00e7\u00e3o.<\/li>\n<li><strong>Indexe chaves estrangeiras:<\/strong>O desempenho depende de consultas r\u00e1pidas nas linhas da tabela de jun\u00e7\u00e3o.<\/li>\n<li><strong>Impor restri\u00e7\u00f5es:<\/strong>Use restri\u00e7\u00f5es \u00fanicas e refer\u00eancias de chave estrangeira para evitar dados inv\u00e1lidos.<\/li>\n<\/ul>\n<p>Ao seguir estas t\u00e9cnicas, voc\u00ea garante que seu esquema de banco de dados seja resistente a mudan\u00e7as e capaz de lidar com intera\u00e7\u00f5es de dados complexas. O esfor\u00e7o investido na modelagem adequada na fase de design traz benef\u00edcios em manutenibilidade e desempenho ao longo de toda a vida \u00fatil do sistema.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>No cen\u00e1rio da arquitetura de dados, poucos conceitos geram mais confus\u00e3o do que o relacionamento muitos para muitos. Ao projetar um Diagrama Entidade-Relacionamento (ERD), encontrar uma situa\u00e7\u00e3o em que uma&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1699,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD","_yoast_wpseo_metadesc":"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.","fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[86],"tags":[82,85],"class_list":["post-1698","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-erd","tag-academic","tag-erd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD<\/title>\n<meta name=\"description\" content=\"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD\" \/>\n<meta property=\"og:description\" content=\"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\" \/>\n<meta property=\"og:site_name\" content=\"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-26T17:55:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1664\" \/>\n\t<meta property=\"og:image:height\" content=\"928\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"vpadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"vpadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\"},\"author\":{\"name\":\"vpadmin\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#\/schema\/person\/05a897b07530dd5607bd8a29719b1d6c\"},\"headline\":\"Resolvendo Relacionamentos Muitos para Muitos: T\u00e9cnicas Claras para Modelagem de ERD\",\"datePublished\":\"2026-03-26T17:55:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\"},\"wordCount\":2729,\"publisher\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg\",\"keywords\":[\"academic\",\"erd\"],\"articleSection\":[\"ERD\"],\"inLanguage\":\"pt-PT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\",\"url\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\",\"name\":\"Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD\",\"isPartOf\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg\",\"datePublished\":\"2026-03-26T17:55:23+00:00\",\"description\":\"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage\",\"url\":\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg\",\"contentUrl\":\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg\",\"width\":1664,\"height\":928},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.go-diagram.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resolvendo Relacionamentos Muitos para Muitos: T\u00e9cnicas Claras para Modelagem de ERD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#website\",\"url\":\"https:\/\/www.go-diagram.com\/pt\/\",\"name\":\"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.go-diagram.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#organization\",\"name\":\"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods\",\"url\":\"https:\/\/www.go-diagram.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2025\/03\/go-diagram-logo.png\",\"contentUrl\":\"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2025\/03\/go-diagram-logo.png\",\"width\":340,\"height\":62,\"caption\":\"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods\"},\"image\":{\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#\/schema\/person\/05a897b07530dd5607bd8a29719b1d6c\",\"name\":\"vpadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.go-diagram.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56e0eb902506d9cea7c7e209205383146b8e81c0ef2eff693d9d5e0276b3d7e3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56e0eb902506d9cea7c7e209205383146b8e81c0ef2eff693d9d5e0276b3d7e3?s=96&d=mm&r=g\",\"caption\":\"vpadmin\"},\"sameAs\":[\"https:\/\/www.go-diagram.com\"],\"url\":\"https:\/\/www.go-diagram.com\/pt\/author\/vpadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD","description":"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/","og_locale":"pt_PT","og_type":"article","og_title":"Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD","og_description":"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.","og_url":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/","og_site_name":"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods","article_published_time":"2026-03-26T17:55:23+00:00","og_image":[{"width":1664,"height":928,"url":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg","type":"image\/jpeg"}],"author":"vpadmin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"vpadmin","Tempo estimado de leitura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#article","isPartOf":{"@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/"},"author":{"name":"vpadmin","@id":"https:\/\/www.go-diagram.com\/pt\/#\/schema\/person\/05a897b07530dd5607bd8a29719b1d6c"},"headline":"Resolvendo Relacionamentos Muitos para Muitos: T\u00e9cnicas Claras para Modelagem de ERD","datePublished":"2026-03-26T17:55:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/"},"wordCount":2729,"publisher":{"@id":"https:\/\/www.go-diagram.com\/pt\/#organization"},"image":{"@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage"},"thumbnailUrl":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg","keywords":["academic","erd"],"articleSection":["ERD"],"inLanguage":"pt-PT"},{"@type":"WebPage","@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/","url":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/","name":"Resolvendo Relacionamentos Muitos para Muitos na Modelagem ERD","isPartOf":{"@id":"https:\/\/www.go-diagram.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage"},"image":{"@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage"},"thumbnailUrl":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg","datePublished":"2026-03-26T17:55:23+00:00","description":"Aprenda t\u00e9cnicas claras para resolver relacionamentos muitos para muitos na modelagem ERD. Compreenda tabelas de jun\u00e7\u00e3o, cardinalidade e normaliza\u00e7\u00e3o para bancos de dados robustos.","breadcrumb":{"@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#primaryimage","url":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg","contentUrl":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2026\/03\/resolving-many-to-many-relationships-erd-junction-table-infographic.jpg","width":1664,"height":928},{"@type":"BreadcrumbList","@id":"https:\/\/www.go-diagram.com\/pt\/resolving-many-to-many-relationships-erd-modeling\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.go-diagram.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Resolvendo Relacionamentos Muitos para Muitos: T\u00e9cnicas Claras para Modelagem de ERD"}]},{"@type":"WebSite","@id":"https:\/\/www.go-diagram.com\/pt\/#website","url":"https:\/\/www.go-diagram.com\/pt\/","name":"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods","description":"","publisher":{"@id":"https:\/\/www.go-diagram.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.go-diagram.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/www.go-diagram.com\/pt\/#organization","name":"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods","url":"https:\/\/www.go-diagram.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.go-diagram.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2025\/03\/go-diagram-logo.png","contentUrl":"https:\/\/www.go-diagram.com\/pt\/wp-content\/uploads\/sites\/8\/2025\/03\/go-diagram-logo.png","width":340,"height":62,"caption":"Go Diagram Portuguese - Proven AI Workflows &amp; Modern Tech Methods"},"image":{"@id":"https:\/\/www.go-diagram.com\/pt\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.go-diagram.com\/pt\/#\/schema\/person\/05a897b07530dd5607bd8a29719b1d6c","name":"vpadmin","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.go-diagram.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56e0eb902506d9cea7c7e209205383146b8e81c0ef2eff693d9d5e0276b3d7e3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56e0eb902506d9cea7c7e209205383146b8e81c0ef2eff693d9d5e0276b3d7e3?s=96&d=mm&r=g","caption":"vpadmin"},"sameAs":["https:\/\/www.go-diagram.com"],"url":"https:\/\/www.go-diagram.com\/pt\/author\/vpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/posts\/1698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/comments?post=1698"}],"version-history":[{"count":0,"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/posts\/1698\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/media\/1699"}],"wp:attachment":[{"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/media?parent=1698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/categories?post=1698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.go-diagram.com\/pt\/wp-json\/wp\/v2\/tags?post=1698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}