Uma tabela só ou várias (uma pra cada produto)

Oi Pessoal, não sei se é aqui que devo postar isso, mas de qualquer forma vamos lá…

Estou fazendo a modelagem de dados de um BD para um sistema de inventario de hardware e software em minha empresa. Aqui nós controlamos celulares, máquina (PCs e Notes), entre outros (secretaria eletônica, projetores e etc.). Como vocês acham que devem ser as tabelas do banco?

1ª opção: tem uma unica tabela tb_Hardware com diversos campos de todos os tipo para incluir TODOS os hardwraes nela? (mas com muitos campos em branco, afinal nos celulares eu tenho o IMEI, numero da linha e etc. coisa que nas máquinas eu nao tenho; ou seja controlar tudo numa tabela só e relacionar ela com ela mesma, afinal uma maquina que é hardware tbm tem um leitor de DVD que tbm é um hardware).

2ª opção: ter uma tabela tb_Maquina, tb_Celular, tb_Avulso onde na primeira eu controlo apenas máquina e seus perifericos, na segunda os celulares bem como seus perifericos (chip, carregador e etc.) e na terceira uma tabela para controlar btudo aquilo que foge do principal como por exemplo projetores e outros aparelhos?

Eu estava mais desenvolvendo para a segunda opção, porem me falaram que é errada pq assim a cada novo produto que o TI da minha empresa controlar terei que criar uma nova tabela, mas pelo menos eu acho que eu supri esse erro com a tabela de tb_Avulso não é? O que vocês acham?

E ai xará blz?
Seguinte eu trabalho com sistema de inventario de rede(Telecom), aconselho você tentar fazer separado, cada equipamento tem características distintas por isso não fica legal deixar tudo junto, faça de uma forma que caso aparece um novo tipo de equipamento fique fácil de você add. a estrutura dele ao sistema…

Qualquer duvida posta ai…

Olá, você pode fazer mais ou menos assim como esta no modelo que eu fiz rapidinho ai

Att,
André Dalcin

Neste momento, costumo me fazer a seguinte pergunta:

Será mais fácil, normalizar uma BigTable para NTables ou NTables para uma BigTable?

Pense na evolução do sistema, pois vai ter (balela dizer que não existe), qual será a maneira mais fácil, fácil não, menos trabalhosa de se evoluir este modelo (DB, Classes).

Será que num ecommerce, tem um tipo de classe, tabela para cada produto?

Neste primeiro momento, qual o ganho de se ter uma classe/tabela chamada DVD? Celular? Notebook? E outra, um novo produto, uma nova classe/tabela?

Agora respondendo a sua pergunta, sem lero lero.

Celular é um produto, PC é um produto, DVD é um produto, cada um vai ter suas particulariedades, mas tem muita coisa em comum, eu criaria uma única tabela e uma única classe Produto para começar a desenvolver e evoluir este modelo conforme a necessidade, pois muitas vezes confudimos “regras de interface” com regras de domínio.

Talvez no futuro Produto vire uma interface (ou classe abstrata) mas tudo que fiz voltado para produto, continuára funcionando que é o “X” do meu sistema.

Focaria no comum e adicionaria um campo (ex) “outras_informacoes” nesta tabela e no processo de evolução, se necessário, criaria as outras classes/tabelas, pois amanhã alguêm vai lembrar que o celular, tem a informação tipo de memória.