På OSCON i går gav Josh Berkus en god tutorial om DB-design, og han brugte en god brøkdel af den på at rive sig ubarmhjertigt ind i sådan en "EAV "il tabeller; du skulle snart være i stand til at finde hans slides på OSCON-siden og til sidst lydoptagelsen af hele hans tutorial online (sidstnævnte vil sandsynligvis tage et stykke tid).
Du skal bruge en join pr. attribut (flere forekomster af values
). tabel, én pr. egenskab, du henter eller opdaterer), så jeg ved ikke, hvad du mener med "mindre join-tabeller". At samle mange forekomster af samme tabel er ikke en særlig hurtig operation, og dit design gør indekser næsten umulige og ubrugelige.
Brug i det mindste som en mindre forbedring separate tabeller pr. type for dine attributters værdier (måske kan en vis indeksering være anvendelig i det tilfælde, selvom det med MySQL's begrænsning til ét indeks pr. forespørgsel pr. tabel er noget tvivlsomt).