Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FreitasMT

Como criar uma tabela que receberá vários campos diferentes

Recommended Posts

Bom dia colegas do iMasters,

 

Eu não sei se o titulo foi o mais sugestivo possível então já peço desculpas de ante mão,

 

a minha situação é a seguinte:

 

Estou criando uma banco de dados que tem o objetivo de ter o controle de cliente, pedido e produto

 

como na imagem a seguir:

 

6iffv6.jpg

 

 

 

 

segue o codigo do banco

 

 

CREATE TABLE cliente (
  id INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(100) NULL,
  PRIMARY KEY(id)
);

CREATE TABLE pedido (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  produto_idproduto INTEGER(11) UNSIGNED NOT NULL,
  cliente_id INTEGER(11) UNSIGNED NOT NULL,
  qtde INTEGER(11) UNSIGNED NULL,
  valor_total INTEGER(11) UNSIGNED NULL,
  PRIMARY KEY(id)
);

CREATE TABLE produto (
  idproduto INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(100) NULL,
  preco INTEGER(11) UNSIGNED NULL,
  PRIMARY KEY(idproduto)
);

 

 

O problema é o seguinte como vocês vêem eu tenho a tabela produto que é genérica com um nome e preço e isso seria o bastante para muitos produtos mas imaginem que no meio dos meus produtos eu tenha por exemplo uma caneta, então eu tenho que especificar qual a cor da caneta ou um sofá aí eu tenho que especificar quantas peças são ou até uma camisa que tem cor e tamanho.

 

Caros amigos, como eu faria para ter estes campos preparados no meu banco para assim atender qualquer tipo de produto de forma que o banco não saia do padrão DER e então não fique redundante ou duplicado?

 

Desde já muito grato com a sua ajuda :natallaugh: .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio já ter visto discussão parecida aqui no site, pesquise em Modelagem e Banco de Dados.

 

Basicamente será preciso uma tabela que modele os atributos (unidade, cor, especificações etc).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.