| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 17:13:41
|
mrsmylle
JavaEvangelist
Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline
|
Olá a todos!!Conversando com meu professor, não tive exatamente uma fixa conclusão de não criar tabelas associativas.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 17:23:55
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Se você precisa criar um relacionamento M para N, é necessário criar uma tabela associativa - mas isso é só representado no modelo físico, não no modelo lógico.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 17:46:09
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline
|
Não entendi se isso era uma pergunta ???? E se for, qual é a pergunta ???
|
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi
<UnTouChAbLe> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 17:56:49
|
mrsmylle
JavaEvangelist
Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline
|
É que alguns professores disseram que é melhor evitar as tabelas associativas. Gostaria de saber o porquê?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 18:21:57
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Pergunte ao seu professor.
Que eu saiba, toda vez que você tiver um relacionamento M para N você precisa criar no modelo FÍSICO uma tabela associativa.
No modelo LÓGICO essa tabela não existe, porque é um artefato de implementação.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 18:25:06
|
mrsmylle
JavaEvangelist
Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline
|
Você quer dizer que no diagrama (físico) preciso demonstrar, e não implementando (lógico)!?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 18:56:41
|
André Fonseca
JWizard
![[Avatar]](/images/avatar/286b0b3ea509af1aeff6bb47299d96d7.png)
Membro desde: 23/02/2007 15:52:55
Mensagens: 2034
Offline
|
uma vez eu trabalhei num lugar onde tinha uma tabela que tinha 13 chaves extrangeiras dentro dela, algo como
tabela produto
id_produto
id_item1
id_item2
...
id_item13
ou seja, produto só pode ter no máximo 13 itens, se tiver um 14 item vai ter que usar um alter table ai..
uma das vantagens de voce ter uma tabela associativa é vc evitar isso.. agora tudo depende to tipo de BD que vc vai usar, se a query (join) que vc vai ter que usar para recuperar os dados vai ficar pesado, etc..
|
Você é novo no GUJ?
Como fazer perguntas?
www.twitter.com/_afonseca |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/10/2007 23:02:01
|
mrsmylle
JavaEvangelist
Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline
|
Valeu ai thingol, andré!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 07:40:55
|
bonfarj
Java Ninja
![[Avatar]](/images/avatar/1454ca2270599546dfcd2a3700e4d2f1.jpg)
Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline
|
André Fonseca wrote:uma vez eu trabalhei num lugar onde tinha uma tabela que tinha 13 chaves extrangeiras dentro dela, algo como
tabela produto
id_produto
id_item1
id_item2
...
id_item13
ou seja, produto só pode ter no máximo 13 itens, se tiver um 14 item vai ter que usar um alter table ai..
uma das vantagens de voce ter uma tabela associativa é vc evitar isso.. agora tudo depende to tipo de BD que vc vai usar, se a query (join) que vc vai ter que usar para recuperar os dados vai ficar pesado, etc..
Peço desculpas por atuar como coveiro, mas essa realmente me deixou impressionado, não vejo razão para isto.
E aproveitando, gostaria de saber por que este professor afirma que não é uma boa usar tabelas associativas, fiquei curioso.
Abraços,
|
IGOR BRITO ALVES
@igoralves
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 08:45:55
|
AUser
GUJ Master
![[Avatar]](/images/avatar/ed3b5b6f006e79c5a2f0fff4b91c94cd.jpg)
Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline
|
Em alguns casos (sistemas de extrema-alta-super-ultra performance) não é legal mesmo usar. Imagine uma tabela que tem 4 associações e que tem mais ou menos 400 entradas por segundo... Mais ou menos em casos assim.
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 09:50:28
|
bonfarj
Java Ninja
![[Avatar]](/images/avatar/1454ca2270599546dfcd2a3700e4d2f1.jpg)
Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline
|
Verdade, mas se pensarmos em performance boa parte das "boas práticas" de BD vai pro saco, normalização etc. Sendo assim, acho estranho que este professor tenha ressaltado que tabelas associativas não são uma boa, deve ter alguma outra razão que não consigo ver.
Abraços,
|
IGOR BRITO ALVES
@igoralves
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 09:53:44
|
AUser
GUJ Master
![[Avatar]](/images/avatar/ed3b5b6f006e79c5a2f0fff4b91c94cd.jpg)
Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline
|
Nada. Talvez tenha falado isso apenas p/ se achar ou então é daqueles que gostam de escovar bits.
Tem um sistema bancário aqui que por ex: metade dele é com associativas (a parte que é menos usada), algumas outras partes tem, e as de alta performance não tem nenhuma associação sequer.
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 09:56:22
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Muitos materiais sobre orientação a objetos e modelagem de bancos de dados dizem que tabelas associativas não são comuns, porque a maior parte das associações tem algum "dado" a mais que termina virando uma coluna na tabela associativa e fazendo com que ela não seja mais uma simples tabela associativa. Então, associações N:N diretas normalmente simbolizam pouco conhecimento do modelo em questão (ou que você tem um problema bem incomum pra ser resolvido).
Um exemplo disso pode ser encontrado no capítulo 5 do livro Domain Driven Design (o exemplo começa na página 82).
This message was edited 1 time. Last update was at 26/02/2009 09:59:01
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 09:57:47
|
palmadias
JavaTeenager
Membro desde: 08/07/2008 07:41:08
Mensagens: 192
Localização: São Paulo/SP
Offline
|
mrsmylle wrote:Você quer dizer que no diagrama (físico) preciso demonstrar, e não implementando (lógico)!?
Já me intrometendo... rsrs
No modelo logico vc não cria a tabela associativa, apenas destaca a relação. Por exemplo: N produtos podem ser comprados por N clientes.
No modelo fisico vc tem a tabela produto, a tabela cliente e mais a tabela que relacionado os produtos comprados com os clientes.
abraços.
|
http://palmadias.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/02/2009 10:37:11
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
Nem 8 nem 80, normalizar tudo deixa tudo bonitinho, mas joins entre tabelas muito grandes derrubam a performance do banco.
Pergunta pro pessoal do DW se eles gostam de ter que ficar esperando a geração de relatórios que os chefões pedem.
Alguns dados são melhores estarem desnormalizados mesmo, mas tudo depende.
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
|
|