[Resolvido] Tabelas com atributos semelhantes

2 respostas
tRuNkSnEt

Tenho várias tabelas que seus conteúdos são muito semelhantes porém fazem parte de diferentes etapas do workflow de uma solução. Exemplo:

História (Id, Titulo, Conteudo, FuncionarioId, X, Y, Z, W, T);

Apuracao (Id, HistoriaId, Link, A, B)

Produção (Id, HistóriaId, Informacoes, C)

Script (Id, HistoriaId)

A tabela Script não terá nada de diferente em relação a sua tabela Pai História mas é um ciclo diferente no workflow do negocio.
Apuração e Produção tem poucos campo em relação a sua tabela Pai.

Gostaria de saber se ficaria feio e muito redundante se juntar todos os campos na tabela História e criar uma outra tabela TipoHistoria. Exemplo

História (Id, Titulo, Conteudo, FuncionarioId, X, Y, Z, W, T,[color=red]Link, A, B,[/color][color=blue]Informacoes, C [/color],TipoHistoriaId);
TipoHistoria(Id, Tipo)

E ai, o quê geralmente se usa neste caso? O que vocês acham?

2 Respostas

ViniGodoy

Já vi muita discussão a respeito disso em fóruns de bancos de dados, e de OO também.

Acho que depende. Se todos essas entidades tem realmente um conceito parecido, ou idêntico, junte-as em uma só tabela. Se o conceito dela difere, embora atualmente os campos sejam parecidos, então mantenha em tabelas separadas.

Uma coisa que pode te dar uma dica nesse sentido é o uso. Geralmente, essa tabela entra como chave estrangeira em outras para as mesmas coisas? Ou você tem diversos campos separados, de acordo com a etapa do workflow? Além disso, você sente que alguma dessas tabelas tem grandes chances de ter mais campos que as outras não terão no futuro? Você pode querer fazer buscas ou associações de duas coisas dessas ao mesmo tempo, na mesma tela? (por exemplo, uma tela que liste os históricos, com as possibilidades de filtro se irá exibir “apuração”, “produção” ou os dois ao mesmo tempo).

Considere sempre a possibilidade que talvez apenas 2 ou 3 irão compor uma tabela só, ao invés de todas as 4.

tRuNkSnEt

Então, refleti bem e acho que este é o caso, vou manter as tabelas separadas porem com uma tabela Pai mantendo os atributos que serão obrigatoriamente repetidos. Nesta tabela terá os principais campos entáo isso será util para outros fins como versionamento e busca no conteudo geral das informaçoes produzidas em todo o workflow.

Esses foram os dois pontos que mais pesaram na definição do meu Modelo mas, so o tempo dirá.

Quando puder, dê uma olhada neste meu outro topico que ainda não tenho uma boa ideia formada.
http://www.guj.com.br/posts/list/140595.java

Abraço

Criado 7 de outubro de 2009
Ultima resposta 7 de out. de 2009
Respostas 2
Participantes 2