webForumDet fria alternativet

Forum database funderingar!

Webbutveckling

6 svar · 429 visningar · startad av mozilla

Medlem sedan juli 20011 084 inlägg
Frågan#1

Jag sitter här och ska bygga upp ett forum till min hemsida. Och jag vill se till att den är så funktionell/snabb som möjligt. Nu har jag lite olika tankar på hur man ska bygga upp databaserna? Är det bäst att dubbel lagra informationen, eller är det bättre att hämta mer info ur databasen, det kanske blev lite luddigt. Här kommer ett exempel på vad jag menar:

Alternativ 1:
tabell: forum
id | rubrik | text | userid

tabell: svar
id | forumid | text | userid

tabell: user
id | namn | info | signatur | online

I forumet vill jag, som här på wF skriva ut lite info om användaren i en ruta bredvid inlägget. Ska jag bara spara userid och sedan hänta ut den information jag behöver från user databasen....

Alternativ 2:
tabell: forum
id | rubrik | text | userid | username | usersignatur

tabell: svar
id | forumid | text | userid | username | usersignatur

tabell: user
id | namn | info | signatur | online

...eller ska jag kopiera in allt i de andra tabellerna och bara hämta den tabellen som behövs ur databasen?

och slutligen, hur skulle en sådan loop se ut?

edit: döpte om usercomment till usersignatur

Medlem sedan dec. 200012 464 inlägg
#2

Flyttas från ASP

Medlem sedan juli 20011 084 inlägg
#3

Vad det en så pass svår fråga? Men om vi säger så här... vad gör ni? Ska man dubbellagra informationen eller ska man hämta flera gånger för att få ut det som behövs?

Tack LarsG, du har inga tankar kring detta då?

Medlem sedan juli 200012 978 inlägg
#4

Dubbellagring är inte felaktigt ibland eller
DeNormalisering som jag säger.
I första alternativet har du inte med usercomment så de två förslagen är inte likvärdiga.
Du kan ju använda förslag 2 men använd sedan usernamn som nyckel eller indexerat i tabellen user.
Ett TS vore nog inte dumt att ha heller

Medlem sedan juli 20011 084 inlägg
#5

k, vad menar du med att använda den som nyckel eller indexera tabellen?

Och nej, första alternativet har inte usercomment, istället ligger signatur i user databasen (usercomment = signatur, vet inte varför jag döpte dem så just nu :l). Och den skulle då hämtas ur user databasen vid varje inlägg.

/edit
Sedan är det inte bara signaturen jag vill ha med. Utan likt wF, vill jag ha en liten ruta bredvid, med deras mail/webbstatus/ hur många inlägg de skrivit osv. Så ska jag dubbellagra allt det eller hämta det på nytt? nackdelen är ju om man dubbellagrar, ifall om de byter email? Så kommer den gamla att stå kvar på de äldre forum inläggen?(Om man gör som i Alternativ 2)

Jag e nu ute efter den metod som är snabbast, mest funktionell.

Medlem sedan juli 20011 084 inlägg
#6

Tråkigt att detta forum är så inaktivt, för jag tror bestämt att ni som läser detta har någon fundering kring detta? Hur gör ni själva?

Om man skulle göra som Alternativ 2, hur bygger man upp loopen?

Do until rs.EOF
Response.Write rs("text")

SQL = "SELECT signatur FROM user WHERE id = "& rs("userid")
Conn...... osv

Blir inte detta en krävande metod om man har upp till 10 inlägg per sida? tex?

Medlem sedan juli 20011 084 inlägg
#7

Okej jag gjorde nu så att jag laddade hem ett färdigt gratis forum och kollade hur de gjort, och som jag misstänkte så ser det ut som på Alternativ A, nu har jag en annan fundering.

Hur gör jag bäst den loop som ska hämta ut all info? Först måste jag hämta ut original tråden(forum) sedan, svaren de skrivit(svar), och till varje svar(user) hämta deras personliga information?

Eller är det inget påfrestande att göra 12 databas kopplingar per sida? Vad tror ni?

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)