webForumDet fria alternativet

Unika användarnamn?

14 svar · 633 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

Hur skapar man en varcharkolumn med unika användarnamn i mySql?
Alltså att kolumnen inte skall tillåta några dubletter?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
create table users (... , username varchar(30) primary key, ...)

Då behövs ingen kolumn som har attributet auto_increment heller.

Jesper TMedlem sedan nov. 20017 144 inlägg
#3

Tack!

Då behövs ingen kolumn som har attributet auto_increment heller.

Alltså, ta bort det unika id:t?
Är det inte effektivara att använda ett id(unikt) istället då?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Marginellt enligt min uppfattning.

Jesper TMedlem sedan nov. 20017 144 inlägg
#5

Ok. Tnx!

Jesper TMedlem sedan nov. 20017 144 inlägg
#6

Så du menar att om jag byter ut id:t till en sträng i detta fall så spelar det ingen roll prestandamässigt?

Set RecSet = Connect.Execute("SELECT f_id,f_name,f_date,f_userid,f_count,fu_name,[b]fu_id[/b] FROM forum, forum_users WHERE "&_
"[b]f_userid=fu_id[/b] AND f_topicid="& threadid &" AND f_answid=0 ORDER BY f_id")
Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Men jag vill bara att användarnamnet skall vara unikt "baserat" på en annan kolumn i samma tabell.

ex. Kolumnen fu_user varchar(30) är unik inom kolumen fu_uid int(10).
"Kalle" och "Kalle" i "fu_user" går bra, om fu_uid är olika.

Går det eller har jag fel struktur på tabellen då?

Jesper TMedlem sedan nov. 20017 144 inlägg
#8

No one?

K@llenMedlem sedan mars 20032 667 inlägg
#9

Jag har löst det genom att ha ett userId som är primary key (räknare) och sedan ha username som vanligt varchar. När en ny användare registrerar sig kontrollerar jag så att användarnamnet inte är upptaget, det kan ju bli lite konstigt i ett forum med flera användare som heter lika. Men när jag ska joina tabeller eller hämta ut information om en viss medlem skickar jag med användarId och inte användarnamnet, mest för att det är mer praktiskt att hantera numeriska värden i adressraden mm.

Gör man som LarsG säger så slipper man ju en kolumn, det blir mindre data på så vis. Bra att ha i åtanke i framtiden. :)

Jesper TMedlem sedan nov. 20017 144 inlägg
#10

Ja fast jag har flera olika forum i en databas.
Och det blir ju lika tokigt om ett forum har 3 medlemmar och nästan alla användarnamn är upptagna för att ett annat forum har 7800 medlemmar... :)

K@llenMedlem sedan mars 20032 667 inlägg
#11

Du har väl något som talar om vilket forum som medlemmen tillhör? Är inte forumen tre olika applikationer?

Jesper TMedlem sedan nov. 20017 144 inlägg
#12

K@llen skrev:

Du har väl något som talar om vilket forum som medlemmen tillhör?

Ja, som jag skrev i något inlägg ovanför: fu_uid

Är inte forumen tre olika applikationer?

Olika...*Kliar mig i huvudet*, nej det är ett och samma script/databas som delas av olika domäner (i samma katalog). :)

K@llenMedlem sedan mars 20032 667 inlägg
#13

Med risk för att jag uppfattat dig fel, men då kan du väl kontrollera om användarnamnet är ledigt för det forumet besökaren registrerar sig på? Eller blir besökaren medlem på alla forumen vid registrering?

Jesper TMedlem sedan nov. 20017 144 inlägg
#14

Eller blir besökaren medlem på alla forumen vid registrering?

Nix, endast ett forum.
Jag kanske kan loopa igenom namnen för att kolla om namnet finns eller ej. Det har du rätt i.

K@llenMedlem sedan mars 20032 667 inlägg
#15

Du behöver inte loopa, gör en count och se om du får träff på önskat användarnamn. :)

sql = "SELECT COUNT(*) FROM tabellen WHERE forum = 1 AND username = '" & request.form("username") & "' "

set rs = connect.execute(sql)

if rs(0) > 0 then userExist = "true"
134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)