Relacionamento entre tabelas muitos para Muitos

09/11/2014

0

Em um relacionamento de uma duas tabelas, muitos para muitos, é necessario fazer uma tabela auxiliar, se não, como proceder de forma correta?
Marilia Silva

Marilia Silva

Responder

Post mais votado

18/11/2014

Pelo que pesquisei o DBDesigner mesmo descontinuado ainda é melhor que outros softwares free. O MySQL Workbench é o DBDesigner anabolizado, porém a versão trial teria algumas limitações em relação ao versão paga. Outro detalhe é que os dois são otimizados para o MySQL e nem todas as funcionalidades funcionaria com outros bancos de dados.

Achei outras opções, não saberia dizer quais vantagens e desvantagens, só baixando mesmo e testando.

SQL Power Architect

Data Access

[url:descricao=Um fork do DBDesign mais amigável com outro bancos]http://sourceforge.net/projects/dbdesigner-fork/[/url]

[url:descricao=Esse aqui pela descrição só falta fazer chover]http://www.modelsphere.org/open_modelsphere.html[/url]

Agora as ferramentas pagas são a melhores, possuem um arsenal de funcionalidades.
Se for para desenvolver um projeto, pode-se diluir o preço da ferramenta no preço do projeto.

Outra solução é baixa versões alternativas, apesar de ser a pior opção.

Soeuseijothaz

Soeuseijothaz
Responder

Mais Posts

09/11/2014

Soeuseijothaz

É aconselhável normalizar e usar uma tabela intermediaria.

Qual o cenário que você esta com dúvida?
Responder

10/11/2014

Marilia Silva

Não teria um cenario especifico, queria aprender o basico mesmo.
Responder

10/11/2014

Soeuseijothaz

Olha este cenário e domo pode ser feito:

Exemplo 1
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141110-163534.png[/img]

Exemplo 2
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141110-163615.png[/img]
Responder

10/11/2014

Marilia Silva

A tabela auxiliar é a ultima da esquerda para direita? usou qual ferramenta para fazer?
Responder

10/11/2014

Marisiana Battistella

Na verdade não é uma tabela auxiliar.
Essa tabela "tb_obras_locais", que consta no exemplo que o Jothaz postou, é uma tabela intermediária que é utilizada para armazenar os relacionamentos entre e "tb_locais" e "tb_obras". Assim, essa tabela terá uma Foreign Key referenciando o ID da Obra e outra Foreign Key referenciando o ID do local.
É esse tipo de implementação que permite que uma obra esteja associada a mais de um local e um local esteja associado a mais de uma obra.

Espero ter contribuído...
Responder

10/11/2014

Soeuseijothaz

A tabela auxiliar é a ultima da esquerda para direita? usou qual ferramenta para fazer?


Seria o seguinte tenho uma tabela de obras (tb_obras) e outra de locais (tb_locais).
Então em uma mesma obra eu teria vários locais (cantina, pátio, sala de reunião 1, sala de reunião 2, cpd e etc).
Neste caso a tabela intermediário seria tb_obras_ocais, a tabela do meio.
Assim você consegue cadastrar vários locais para uma mesma obra.

Usei o SQL Server Mangement e criei um Database Diagram.

Existem algumas ferramentas para modelagem: Rwim e PowerDesign.
Responder

11/11/2014

Marisiana Battistella

Para agregar conteúdo, achei uma explicação que pode auxiliar no entendimento:
Tipos de relacionamentos
[...]
* Relacionamento 1..1 (lê-se relacionamento um para um) - indica que as tabelas têm relacionamento unívoca entre si. Você escolhe qual tabela vai receber a chave estrangeira;
* Relacionamento 1..n (lê-se um para muitos) - a chave primária da tabela que tem o lado 1 vai para a tabela do lado N. No lado N ela é chamada de chave estrangeira;
* Relacionamento n..n (lê-se muitos para muitos) - quando tabelas têm entre si relacionamento n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relacionamento então se reduz para uma relacionamento 1..n, sendo que o lado n ficará com a nova tabela criada.

fonte: [url]http://pt.wikipedia.org/wiki/Modelo_entidade_relacionamento[/url]
Responder

11/11/2014

Marisiana Battistella

Esse artigo é muito bom, possui exemplos de como implementar no banco de dados:
[url:descricao=Exemplo Prático: Regras e Tipos de Relacionamentos - SQL Server 2008 - Parte 3 ]https://www.devmedia.com.br/exemplo-pratico-regras-e-tipos-de-relacionamentos-sql-server-2008-parte-3/18409[/url]
Vale a pena ler!
Responder

17/11/2014

Marilia Silva

Pessoal, obrigada mesmo pela ajuda, vc´s estão me dando um otimo suporte.
Responder

17/11/2014

Marilia Silva

Qual ferramenta utilizada?
Responder

17/11/2014

Marisiana Battistella

Os exemplos do último artigo que compartilhei, são executados no próprio banco de dados.
Qual SGBD você está utilizando?
Responder

17/11/2014

Alex Lekao

Acompanhando para conhecimento. rsrsr

Vi na faculdade e ja nao me lembrava mais.

como nao uso muito a parte de manutencao do banco entao fico enferrujadissimo. rsrsr
Responder

17/11/2014

Marilia Silva

Os exemplos do último artigo que compartilhei, são executados no próprio banco de dados.
Qual SGBD você está utilizando?


Nenhum, queria aprender a usar algum programa para modelar.
Responder

17/11/2014

Marilia Silva

Acompanhando para conhecimento. rsrsr

Vi na faculdade e ja nao me lembrava mais.

como nao uso muito a parte de manutencao do banco entao fico enferrujadissimo. rsrsr


Estamos no mesmo barco, eu, um pouco perdida.
Responder

17/11/2014

Soeuseijothaz

Acompanhando para conhecimento. rsrsr

Vi na faculdade e ja nao me lembrava mais.

como nao uso muito a parte de manutencao do banco entao fico enferrujadissimo. rsrsr


Estamos no mesmo barco, eu, um pouco perdida.


Só reforçando o que a sábia Marisiana disse dependendo do SGBD já existe esta ferramenta.

Para alguns a melhor ferramenta é cartolina, lápis e régua! kkkkkkkk

Agora existem vários softwares grátis para este fim, cada um com vantagens e desvantagens, a solução é testá-los e ver com qual você de adapta.

Aqui no devmedia tem este artigo:

https://www.devmedia.com.br/dbdesigner-uma-ferramenta-gratuita-para-modelagem-de-dados-artigo-sql-magazine-35/6840
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar