Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

esquema de banco de dados para atributos de produtos


O que você está tentando alcançar é um Entity-Attribute-Value (EAV) ou possivelmente uma modelagem de linha solução. Observe que esse tipo de estrutura é amplamente desaprovado por uma ampla variedade de boas razões.

No entanto, argumentei (por exemplo, aqui , aqui , aqui e aqui ) que EAV é MAL, exceto quando não é. Uma dessas raras exceções é no caso de um catálogo de produtos onde você está rastreando as propriedades dos produtos e onde essas propriedades não são tão interessantes (para seu sistema! ), exceto na medida em que você precisa recuperá-los e imprimi-los em uma página da Web do produto ou em uma grade de comparação, etc.

Considere um projeto como este:



O que você está fazendo em um modelo como esse é descrever quais atributos os produtos em uma determinada categoria devem ter, quais valores esses atributos podem ter e, em seguida, quais valores cada produto específico tem para cada atributo.

Este design tem todas as limitações usuais que o EAV impõe. No entanto, se você quiser fazer perguntas como:"Quais contas têm um diâmetro de 8 mm?" isso é bem direto.