Jag ska bygga ett forum med användare som loggar in. Nu har jag lite fårgor på hur jag ska designa min databas.
När man öppnar en tråd och ser alla inlägg ska den då hämta användaruppgifterna för varje person i en egen sql-fråga eller ska den informationen sparas i tråden det blir ju mer optimerat men ganska dålig design av databasen.
Totala antalet inlägg ska det räknas ihop varje gång eller ska det lagras i användarens uppgifter och sedan plusas på varje gång man gör ett inlägg?
Nått mer man behöver tänka på. Alla tips är välkomna då jag ha väldigt lite tid tills det ska levereras. Dessutom gör jag det pro bono
Jag har ingen exakt siffra på vad skillnaden blir men jag skulle tycka det var värt det! :)
Vilken typ av databas har du tänkt använda?
Felprocenten blir dessutom mycket större om du spar värdet i användarens tabell. Samt att du får koda mycket mer, hela tiden uppdatera den kolumnen så fort det händer nått med trådarna.
Det måste väl bli mer resurskrävande om antal inlägg skall visas för varje medlem vid varje inlägg i en tråd?
I början kanske det inte märks så mycket men med tiden blir det ju en jobbigare och jobbigare count som måste göras.
Uppdateringen av kolumnen behöver väl bara göras när ett inlägg görs eller tas bort så så mycket mer kodning skulle det väl inte innebära att spara infon i användartabellen?
Uppdateringen av kolumnen behöver väl bara göras när ett inlägg görs eller tas bort så så mycket mer kodning skulle det väl inte innebära att spara infon i användartabellen?
Jo, vars kanske det men man får lite fler fördelar med counten, du kan t.ex få ut antal startade trådar, antal svarade, antal borttagna osv.
Och en count på säg 50.000 poster tar nog inte mer än en halv sekund skulle jag tro (dock inte testat! :) )
Det ska inte fungera som på wF utan att klickar man på en tråd så markeras den som läst. Görs det ett nytt inlägg i den så ska den markeras som oläst igen.
Och en count på säg 50.000 poster tar nog inte mer än en halv sekund skulle jag tro (dock inte testat! :) )
Nu är det fullt möjligt att jag tänker på fel sak.
Men jag utgår från att det skall fungera ungefär som här...att man vid varje inlägg skall se resp. persons info och därbland totalt antal inlägg för personen som gjort inlägg.
Om man tar ditt exempel att 50 000 poster tar en halv sekund att göra en count på innebär det att den här tråden i nuläget skulle ta ca 5 sekunder (10 inlägg x 0,5 sekunder) på sig bara för att få fram antal inlägg per person. Det innebär också att det blir segare och segare både ju längre trådarna blir och ju större databasen blir.
Men som sagt...vi tänker kanske på två olika saker.
Det ska inte fungera som på wF utan att klickar man på en tråd så markeras den som läst. Görs det ett nytt inlägg i den så ska den markeras som oläst igen.
En variant är ju återigen en relationstabell (hehe, jag gillar sånna!) mellan tråden och alla användare, när användaren läser så skapas en relation och användaren har läst, görs ett nytt inlägg töms hela relationstabellen.
Bendro skrev:
Men som sagt...vi tänker kanske på två olika saker.
Vi tänker nog lika tror jag men man ska nog inte ta mitt exempel så allvarligt.
Det är ju knappast troligt att alla användare skulle gjort 50.000 inlägg var! Se bara på vår vapendragare @nders här på wF, han har gjort typ 18.000 under 4 år och som moderator.
Sen har det ju stor betydelse på vilken databas man kör, en sql-server med lagrade procedurer klarar det ju finfint medans en access skulle kräkas av så många poster.
280 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e