sql >> Databasteknik >  >> RDS >> Mysql

Kritisera min MySQL-databasdesign för obegränsade DYNAMISKA fält

OSCON igår gav Josh Berkus en bra handledning om DB-design, och han spenderade en stor del av den på att skoningslöst slita in sådana "EAV "il tabeller; du borde snart kunna hitta hans bilder på OSCON-webbplatsen och så småningom ljudinspelningen av hela hans handledning online (det senare kommer förmodligen att ta ett tag).

Du behöver en join per attribut (flera instanser av values). tabell, en per attribut du hämtar eller uppdaterar) så jag vet inte vad du menar med "mindre anslutna tabeller". Att slå ihop många instanser av samma tabell är inte en särskilt snabb operation, och din design gör index nästan omöjliga och oanvändbara.

Åtminstone som en mindre förbättring använd separata tabeller per typ för dina attributs värden (kanske viss indexering kan vara tillämplig i så fall, men med MySQL:s begränsning till ett index per fråga per tabell är även det något tveksamt).



  1. Konvertering från Microsoft SQL Server till MySQL

  2. Är hexing-ingång tillräcklig för att rensa SQL-frågor?

  3. återanvända resultatet av ett urvalsuttryck i GROUP BY-satsen?

  4. Måste deklarera skalär variabel @Id?