webForumDet fria alternativet
Logga in / Bli medlem

Varchar vs Lookup

Databaser & SQL

1 svar · 218 visningar · startad av mmmMange

Medlem sedan jan. 2005110 inlägg
Trådstart#1

MySQL 5.

Vad tjänar man egentligen på att använda en Lookup-tabell, istället för att lagra strängar i ett varchar-fält? Databasen vi pratar om ser (förenklat) ut såhär:

TABLE 'images'
imageid INTEGER AUTO INC
categoryname VARCHAR(20)

Som synes sparas kategorinamnet i varje post. Man skulle ju också kunna göra såhär:

TABLE 'images'
imageid INTEGER AUTO INC
categoryid INTEGER

TABLE 'categories'
categoryid INTEGER AUTO INC
categoryname VARCHAR(20)

Då sparar man ju bara själva kategorinamnet en enda gång, vilket (antar jag) sparar en hel del utrymme. Men det man tjänar i utrymme måste väl betalas med prestanda kan jag tänka mig. Dels blir det krångligare PHP-kod, och dels måste man ju göra lookup när man ska söka fram bilder ur en viss kategori.

Jag har alltid använt lookups när man har en sådan situation, men är det nån som har några synpunkter på hur stora skillnader det är egentligen?

Medlem sedan juli 20033 147 inlägg
#2

Skillnaden i hastighet blir nog inte märkbar, men det blir ju betydligt enklare att ändra ett kategorinamn om det bara står på ett ställe.

248 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)