Op OSCON gisteren gaf Josh Berkus een goede tutorial over DB-ontwerp, en hij bracht een groot deel ervan genadeloos door in zulke "EAV "il tabellen; je zou zijn dia's binnenkort op de OSCON-site moeten kunnen vinden, en uiteindelijk de audio-opname van zijn hele tutorial online (de laatste zal waarschijnlijk een tijdje duren).
Je hebt een join per kenmerk nodig (meerdere exemplaren van de values
tabel, één per attribuut dat u ophaalt of bijwerkt), dus ik weet niet wat u bedoelt met "minder join-tabellen". Het samenvoegen van veel instanties van dezelfde tabel is geen bijzonder snelle operatie, en uw ontwerp maakt indices bijna onhaalbaar en onbruikbaar.
Gebruik in ieder geval als kleine verbetering aparte tabellen per type voor de waarden van uw attributen (misschien is in dat geval enige indexering van toepassing, hoewel met de beperking van MySQL tot één index per query per tabel zelfs dat enigszins dubieus is).