Relacionamento entre tabelas muitos para Muitos

Modelagem

09/11/2014

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

Curtidas 0

Melhor post

Soeuseijothaz

Soeuseijothaz

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.
GOSTEI 1

Mais Respostas

Soeuseijothaz

Soeuseijothaz

09/11/2014

É aconselhável normalizar e usar uma tabela intermediaria.

Qual o cenário que você esta com dúvida?
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Não teria um cenario especifico, queria aprender o basico mesmo.
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

09/11/2014

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]
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

A tabela auxiliar é a ultima da esquerda para direita? usou qual ferramenta para fazer?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

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...
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

09/11/2014

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.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

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]
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

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!
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Pessoal, obrigada mesmo pela ajuda, vc´s estão me dando um otimo suporte.
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Qual ferramenta utilizada?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

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

Alex Lekao

09/11/2014

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
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

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.
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

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.
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

09/11/2014

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
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Não possuo paciencia para usar a borracha com frequencia, rsrsrsrs

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


Esse não me é estranho, talvez por que eu já tenha lido algo proximo a ela. obrigada.
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

09/11/2014

De nada!
GOSTEI 0
Alex Lekao

Alex Lekao

09/11/2014

Lembro-me vagamente. rsrsr

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.
GOSTEI 0
Alex Lekao

Alex Lekao

09/11/2014

Obrigado Jothaz!!!

Ja estou inclusive baixando o programa citado no artigo. rsrsr
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

Esse artigo que o Jothaz compartilhou, sobre o DBDesigner, tem mais de um ano de publicação e recentemente li um artigo que falava q DBDesigner foi descontinuado e está sendo substituído pelo MySQL Workbench.
Alguém tem mais informações sobre isso? Eu não tive tempo de pesquisar mais a respeito e vendo os comentários lembrei disso.
GOSTEI 0
Alex Lekao

Alex Lekao

09/11/2014

Oi Marisiana,

Informacao a respeito eu nao tenho, mas qdo fui baixar ele davam a opcao de baixar o Workbench mas tbm tinha a versao recente deles.

O site ainda estava no ar, mas nao li nada no site, fui direto em download. rsrsr
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Acompanhando novamente, vi que existem mais ferramentas no mercado, a ultima que disponibilizou o link pelo nome é gratuita, mas qual a melhor na opinião de vocês, que podem te dar um retorno para a vida profissional, no sentido de conhecer ferramentas.
GOSTEI 0
Alex Lekao

Alex Lekao

09/11/2014

Oi Jothaz, obrigado.

Tenho algumas deles baixadas, mas nao tenho muito tempo para estuda-las.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

Por isso que fiquei em dúvida, pois quando li aquele artigo falando que o DBDesigner tinha sido descontinuado, encontrei informações sobre a nova versão.
Obrigada pelas informações Jothaz!
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Acompanhando novamente, vi que existem mais ferramentas no mercado, a ultima que disponibilizou o link pelo nome é gratuita, mas qual a melhor na opinião de vocês, que podem te dar um retorno para a vida profissional, no sentido de conhecer ferramentas.


O que podem me informar?
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

09/11/2014

De nada!

Acompanhando novamente, vi que existem mais ferramentas no mercado, a ultima que disponibilizou o link pelo nome é gratuita, mas qual a melhor na opinião de vocês, que podem te dar um retorno para a vida profissional, no sentido de conhecer ferramentas.


O que podem me informar?


Marilia acho muito difícil indicar qual a melhor ferramenta ou mesmo a mais adotada.
Ao meu ver seria mais proveitoso você pesquisar material sobre os conceito e depois decidir qual software seria mais completo.
Tenho um link nos meus favoritos sobre isto, não sei se esta quebrado, mas era um bom material.

http://bibdig.poliseducacional.com.br/document/?view=106
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

O que vale mesmo é conhece a fundo os conceitos e as ferramentas da para desenrolar?
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

09/11/2014

O que vale mesmo é conhece a fundo os conceitos e as ferramentas da para desenrolar?


Conhecendo bem os conceitos fica fácil usar qualquer ferramenta.
Seria com programar, se você sabe programar mesmo consegue usar qualquer linguagem.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

Eu diria que tem coisas que aprendemos que nos acompanham para a vida toda, como a lógica de programação, os conceitos de UML, levantamento de requisitos, etc.
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

O que vale mesmo é conhece a fundo os conceitos e as ferramentas da para desenrolar?


Conhecendo bem os conceitos fica fácil usar qualquer ferramenta.
Seria com programar, se você sabe programar mesmo consegue usar qualquer linguagem.


Estarei estudando mais e pensando menos em ferramentas.
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Eu diria que tem coisas que aprendemos que nos acompanham para a vida toda, como a lógica de programação, os conceitos de UML, levantamento de requisitos, etc.


A base é um dos fundamentos que não podemos esquecer.
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Eu diria que tem coisas que aprendemos que nos acompanham para a vida toda, como a lógica de programação, os conceitos de UML, levantamento de requisitos, etc.


A base é um dos fundamentos que não podemos esquecer.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/11/2014

Sem dúvida!
Bons estudos Marilia!
GOSTEI 0
Marilia Silva

Marilia Silva

09/11/2014

Muito obrigada.
GOSTEI 0
POSTAR