Svish Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Jeg har denne: CREATE TABLE users ( username TINYTEXT NOT NULL, email TINYTEXT NOT NULL, role_id INTEGER UNSIGNED NOT NULL, password_hash CHAR(40) NOT NULL, last_seen DATETIME DEFAULT NULL, last_ip INTEGER UNSIGNED DEFAULT NULL, PRIMARY KEY(username), INDEX index_validate(username, password_hash) ) ENGINE = MyISAM; Men får: BLOB/TEXT column 'username' used in key specification without a key length What do I do? burde jeg bruke en user_id INTEGER istedet som primary key? Lenke til kommentar
Svish Skrevet 21. februar 2007 Forfatter Del Skrevet 21. februar 2007 (endret) altså, hovedspørsmålet er (da det kanskje ikke kom helt klart frem..) hvordan angir jeg key length? (og hvor lang bør/skal/må den være?) får samme feilen når jeg prøver å legge til UNIQUE index_username(username) også... Endret 21. februar 2007 av Tussi_qwerty Lenke til kommentar
roac Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Siden du åpenbart har noen hull i kunnskapen bør du se nøyere på de forskjellige datatypene. Er password hash alltid 40 tegn? Hvis ikke bør den muligens være av type varchar i steden for char. Tilsvarende bør også brukernavn være char eller varchar, avhengig av hvilke begrensninger du setter på lengden av brukernavn. Og ja, det kan definitivt være fordelaktig å bruke brukerid i steden for brukernavn. Lenke til kommentar
Svish Skrevet 22. februar 2007 Forfatter Del Skrevet 22. februar 2007 (endret) klart jeg har hul i kunnskapen. ellers hadde jeg jo ikke spurt spørsmålet... bruker user_id nå, men vil fortsatt veldig gjerne få puttet en unique på username slik at det ikke er mulig å ha noen med samme brukernavn. ingen som vet hvordan jeg kan få til det? en password_hash er _alltid_ 40 tegn. bruker sha1() funksjonen til å lagre passord, og resultatet av den er _alltid_ 40 tegn. har brukt tinytext jeg synes det ser renere ut. ser ikke noen forskjeller mellom tinytext og varchar(255) uansett, og derfor tenkte jeg det var et fett.. men er vel sikkert ikke det.. uansett så kunne jeg fortsatt godt tenkt meg å vite hvordan jeg kan angi key length på den saken.... noen som vet? Endret 22. februar 2007 av Tussi_qwerty Lenke til kommentar
roac Skrevet 22. februar 2007 Del Skrevet 22. februar 2007 ...text er CLOBS (Character Large Objects). Disse har noen lagringsmessige fordeler, men har også noen begrensninger, som f eks at det ikke er like greit å indeksere dem, og (hvis jeg ikke tar helt feil) de ikke kan være primærnøkkel eller fremmednøkkel. Mer informasjon om LOBs finner du hos MySQL Lenke til kommentar
Svish Skrevet 22. februar 2007 Forfatter Del Skrevet 22. februar 2007 ok. men da er den grei. da bruker jeg varchar istedet på den da. takker for info de mysql manualsidene er foreløpig alt for komplekse og innvikla til at jeg klarer å bruke dem ordentlig.. manualen til php er SÅ mye greiere. så for tiden bruker jeg en MySQL in 10 minutes chm fil som oppslagsverk på de enklere tingene Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå