webForumDet fria alternativet

Söka i sträng

ASP

7 svar · 367 visningar · startad av KoTTeN

Medlem sedan sep. 20011 722 inlägg
Frågan#1

Säg att jag har denna sträng:
;1:1;2:4;3:3;

Dom är uppdelade såhär ;ForumID:ForumAccess;
Hur bör jag gå tillväga om jag på ett så snabbt sett som möjligt vill få fram vad ForumID 2 har för access? Dvd raden markerat med fettstil. Accessen kan vara mellan 1 - 4.

En metod är att splita upp strängen i en array och sedan loopa igenom den och i varje kontrollera om det är rätt ForumID, men det känns inte som den bästa metoden, finns det inget bättre sett? Eller är detta den bästa lösningen?

Medlem sedan maj 200010 687 inlägg
#2

Ligger det lagrat så i databasen? I så fall bör du nog ändra där.

Medlem sedan maj 200010 687 inlägg
#3

Annars så kan du använda detta pattern: ;2:(\d);
Men jag rekommenderar att du ändrar lagringen i databasen istället.

Medlem sedan sep. 20011 722 inlägg
#4

Jo det ligger i databas, sparas sedan om till session när användaren loggar in.

Men, hur ska man kunna lagra detta på ett bra sett? Längden på strängen är dynamisk och kan vara allt ifrån ett ForumID till ett tiotal. Vad är nackdelen med sådan lagring i en och samma sträng? Och slutligen, kan man göra på något annat sätt när man ska spara in det i sessioner? (Utan att få 100+ sessioner till en och samma användare :) )

Medlem sedan feb. 200112 078 inlägg
#5

Databas i databas, som det där kallas, är helt fel sätt att konstruera sin applikation på.

Konvertera det till en eller fler relationstabeller istället!

Medlem sedan maj 200010 687 inlägg
#6

När det lagras i Sessionen så skulle det kunna lagras så. Men jag hade nog lagrat det i formatet: Session("ForumRight2") = 4

Och i databasen haft en referenstabell som kopplar ihop forumtabellen, rättighetstabellen och användartabellen.

Typ:
tblForum
ForumId
ForumName
...

tblForumRight
RightId
RightName
...

tblUser
UserId
UserName
...

tblUserRight
UserRightUserId
UserRightForumId
UserRightRightId

Nåt sånt är lämpligt. :)

Medlem sedan sep. 20011 722 inlägg
#7

Men ska jag vara ärlig så förstår jag inte varför jag ska ha en egen tabell med rättigheter.
Inte heller varför jag ska ha en egen session till varje access till forumet, segar inte det ner en massa?

Visst, jag får sortera om allt så fort jag ska använda det, men tycker ändå det verkar smartare och mindre krävande. Eller har jag fel som vanligt?

Medlem sedan maj 200010 687 inlägg
#8

Det är mer krävande att leta runt i strängar. Och det kan bli mer fel. I databasen kan man styra mer med hjälp av nycklar kopplingar och annat. :)
Det blir inte en session för varje access, det blir en sessionsvariabel för varje access...

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)