sql >> Databasteknik >  >> RDS >> Mysql

Rätt sätt att lagra artiklar med filtrerbara attribut?

Jag gillar att använda aggregering för detta med villkorlig aggregering. Till exempel för din första punkt:

select a.carid
from attributes a
group by a.carid
having sum( (attribute, value) in ( ('color', 'red'), ('color', 'blue') ) ) > 0 and 
       sum( (attribute, value) in ( ('wheels', '2') ) > 0;

> 0 betyder att kombinationen attribut/värde finns. Använd = 0 för att ange att det inte fungerar.




  1. Konvertera värde från strängrepresentation i bas N till numeriskt

  2. Hur man får databasdetaljer är vyer i opencart

  3. Ordnar om PHP-sidan så att rubriken är före HTML

  4. Indexera en MySQL-databas med Apache Lucene och håll dem synkroniserade