Citat:
Ursprungligen postat av
fnirp
Om man skulle göra en normaliserad lösning, så har du tre tabeller:
USER: user_id, user_name
CODE: code_id, code_string
USER_CODE: user_id, code_id
dvs du lägger till en rad i USER_CODE varje gång du tilldelar en användare en kod. Men ibland kan det vara bättre att förenkla tabellstrukturen och om man då gör som du gör är det bara nästan rätt. Använd NULL istället för -, så blir det tydligt att ingen användare har tilldelats den där koden.
CODE: code_id, user_id, code_string
SELECT *
FROM code
WHERE user_id IS NULL
ORDER BY ID
LIMIT 1
Som du ser använder jag mig av ett user_id-värde istället för namnet i klartext. En användares namn ska bara stå i klartext på ett ställe, i användartabellen. För vad händer annars om användaren byter namn? Byter du överallt i alla tabeller där namnet står i klartext? Det är risk för inkonsistens i databasen och sånt vill man undvika.
Tack så mycket för tipsen! Ska ta en titt på min struktur.
Det kommer inte vara möjligt att byta namn. Det som sidan används till är att ge ut cd-keys till ett spel. Sidan kommer att användas till att registrera alla nycklar vi har, för att sedan ge ut nycklarna. Man ska alltså inte riktigt göra någonting med informationen i databasen förutom att hålla koll på vilka nycklar som är använda och inte.