Melhor evitar tabela Associativa  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
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.
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.
[WWW]
Giulliano
GUJ Master
[Avatar]

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>
[Email] [WWW] [MSN]
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ê?
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.
[WWW]
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)!?
André Fonseca
JWizard
[Avatar]

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
mrsmylle
JavaEvangelist

Membro desde: 20/05/2005 00:02:06
Mensagens: 432
Offline

Valeu ai thingol, andré!
bonfarj
Java Ninja
[Avatar]

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
AUser
GUJ Master
[Avatar]

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
bonfarj
Java Ninja
[Avatar]

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
AUser
GUJ Master
[Avatar]

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
Mauricio Linhares
Moderador
[Avatar]

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
[WWW]
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/
[WWW] [MSN]
Bruno Laturner
GUJ Expert
[Avatar]

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
[WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team