Jump to content
Fórum Script Brasil
  • 0

Atributos de Produtos Loja Virtual


Nukes

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...