Ir para conteúdo
Fórum Script Brasil
  • 0

Atributos de Produtos Loja Virtual


Nukes

Pergunta

Boa noite galera!

Estou com um problema que é o seguinte, preciso colocar os atributos de produtos em uma loja virtual e estou me batendo muito na disposição das tabelas do banco.

Agora está assim:

Tenho as tabelas:

Produtos (Que são os valores fixos dos produtos, como descrição, informações técnicas).

IdProduto | nomeProduto | descricaoProduto| informacoesTecn | blabla |
      3         Camiseta Polo         Blablabla         Altura: 3x3..          blabl
      4         Calça Jeans             blablabla          blablabla             blabla
produtos_complemento (que são os valores variaveis dependendo do item)
idProduto | codProduto | valorProduto | qtdEstoque | altura | largura | comprimento | etc...
     3               10                100,00           40              1           1              1               etc...
     3               11                110,00           30              1           1              1               etc...
     4               16                20,00             10              1           1              1               etc...
     4               18                25,00             50              1           1              1               etc...
tipos_atributos (que são os tipos de atributos que posso colocar nos produtos)
idTipoAtributo | nomeAtributo
      1                     cor
      2                  tamanho
      3                     aro
      4                     etc...
atributos (são os atributos em si)
idAtributo | idTipoAtributo | nomeAtributo
     1                   1                 Amarelo
     2                   1                 Verde
     3                   1               Vermelho
     4                   2                    42
     5                   2                    40
produtos_atributos (é a relação entre o atributo e o produto)
idLinha  |  idProduto  |  codProduto |  idTipoAtributo  | idAtributo
    1                3                10                   1                   1
    2                3                11                   2                   4

Então o que acontece, o usuário entra em um produto, por exemplo, a camiseta polo (idProduto 10) e seleciona a variação... Por exemplo: Cor - Amarela, Tamanho - 42. Nessa hora eu preciso ir no banco de dados e verificar qual o código do produto com a variação correspondente segundo o idProduto.

Nesse exemplo que dei, segue os dados:

Camiseta Polo (idProduto 10)

Cor (idTipoAtributo 1)

Amarelo (idAtributo 1)

Tamanho (idTipoAtributo 2)

42 (idAtributo 4)

O problema é que na disposição que está o banco de dados agora, se eu fizer esse select, eu vou achar somente o codProduto da camiseta AMARELA ou somente a camiseta NUMERO 42 e nunca as duas variações juntas para um produto.

Sei que eu poderia criar mais campos na tabela produtos_complemento como "idTipoAtributo1, atributo1, idTipoAtributo2, atributo2" mas dessa forma eu teria uma quantidade de atributos fixa, e não é esse o caso, pois meu cliente poderá cadastrar N atributos para cada produto.

Então fica a dúvida, qual a forma correta de deixar o BD?

Desculpem pelo texto enorme, mas não vi outra forma de explicar corretamente sem colocar todos os exemplos.

Obrigado desde já!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Em 16/04/2012 at 23:37, Nukes disse:

Boa noite galera!

 

Estou com um problema que é o seguinte, preciso colocar os atributos de produtos em uma loja virtual e estou me batendo muito na disposição das tabelas do banco.

 

Agora está assim:

Tenho as tabelas:

 

Produtos (Que são os valores fixos dos produtos, como descrição, informações técnicas).

 

 

IdProduto | nomeProduto | descricaoProduto| informacoesTecn | blabla |
      3         Camiseta Polo         Blablabla         Altura: 3x3..          blabl
      4         Calça Jeans             blablabla          blablabla             blabla

produtos_complemento (que são os valores variaveis dependendo do item)

 

idProduto | codProduto | valorProduto | qtdEstoque | altura | largura | comprimento | etc...
     3               10                100,00           40              1           1              1               etc...
     3               11                110,00           30              1           1              1               etc...
     4               16                20,00             10              1           1              1               etc...
     4               18                25,00             50              1           1              1               etc...

tipos_atributos (que são os tipos de atributos que posso colocar nos produtos)

 

idTipoAtributo | nomeAtributo
      1                     cor
      2                  tamanho
      3                     aro
      4                     etc...

atributos (são os atributos em si)

 

idAtributo | idTipoAtributo | nomeAtributo
     1                   1                 Amarelo
     2                   1                 Verde
     3                   1               Vermelho
     4                   2                    42
     5                   2                    40

produtos_atributos (é a relação entre o atributo e o produto)

 

idLinha  |  idProduto  |  codProduto |  idTipoAtributo  | idAtributo
    1                3                10                   1                   1
    2                3                11                   2                   4

 

 

Então o que acontece, o usuário entra em um produto, por exemplo, a camiseta polo (idProduto 10) e seleciona a variação... Por exemplo: Cor - Amarela, Tamanho - 42. Nessa hora eu preciso ir no banco de dados e verificar qual o código do produto com a variação correspondente segundo o idProduto.

 

Nesse exemplo que dei, segue os dados:

 

Camiseta Polo (idProduto 10)

Cor (idTipoAtributo 1)

Amarelo (idAtributo 1)

Tamanho (idTipoAtributo 2)

42 (idAtributo 4)

 

O problema é que na disposição que está o banco de dados agora, se eu fizer esse select, eu vou achar somente o codProduto da camiseta AMARELA ou somente a camiseta NUMERO 42 e nunca as duas variações juntas para um produto.

 

Sei que eu poderia criar mais campos na tabela produtos_complemento como "idTipoAtributo1, atributo1, idTipoAtributo2, atributo2" mas dessa forma eu teria uma quantidade de atributos fixa, e não é esse o caso, pois meu cliente poderá cadastrar N atributos para cada produto.

 

Então fica a dúvida, qual a forma correta de deixar o BD?

 

Desculpem pelo texto enorme, mas não vi outra forma de explicar corretamente sem colocar todos os exemplos.

 

Obrigado desde já!

Bom dia Nukes, você conseguiu, pois estou passando pelo mesmo problema, você pode me ajudar?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...