Forum (databasstruktur)

ASP

11 svar · 294 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Trådstart#1

Jag pular lite med ett forum till ett projekt i plugget men då jag aldrig gett mig på ett forum förut har jag lite problem med databasstrukturen. Jag har tänkt att föjande tre kolumner ska strukturera upp inlägg och trådar.

PostID (primärnyckel, räknare)
TopicID (tal)
Master (sant/falskt)

"PostID" har jag med för att kunna länka till ett specifikt inlägg genom t.ex. ankare.

"TopicID" berättar vilken diskussion inlägget hör hemma i. All inlägg i en diskussion har samma "TopicID".

"Master" håller reda på om inlägget är ett huvudinlägg eller inte.

Problemet blir när jag ska lägga till en ny diskussion. Den nya diskussionen måste ju ha ett unikt tal i "TopicID"-kolumnen som inlägg i samma diskussion kan ärva. Hur går jag tillväga? Kan man på något sätt få ut det högsta nummret i kolumnen "TopicID" och lägga på 1?

Medlem sedan apr. 20012 427 inlägg
#2

Jag tror att jag löste det själv:

"SELECT TOP 1 TopicID FROM tblForum ORDER BY TopicID DESC"

...och sedan lägger jag på 1.

Frågan är om detta är onödigt omständligt. Hur ser databasstrukturen för ett forum normalt ut?

Medlem sedan dec. 19996 522 inlägg
#3

Normalforum och normal forum. Jag har gjort ett par forum och där har jag oftast haft en tabell för topics, en tabell för replies och sen diverse andra tabeller för lite andra saker.

Medlem sedan mars 20014 214 inlägg
#4

Så här brukar mina tabeller se ut

tblRubriker:
rubrikID: räknare
Namn: Text
Email: Text
Rubrik: PM
Inlagg: PM
Datum: datum/tid
Antalsvar: tal
Senaste: datum/tid

tblSvar:
svarID:räknare
namn: text
email: text
datum: datum/tid
svartill: tal

Medlem sedan dec. 200012 464 inlägg
#5

Om du har definierat kolumnen som räknare så behöver du inte själv hålla på och räkna ut ett nytt värde.

Det är bara att utelämna kolumnen när du gör insert så sköter dbms'et om att det blir ett nytt värde.

Dessutom är din metod inte helt säker.

Medlem sedan apr. 20012 427 inlägg
#6

Med andra ord bör jag ha separata tabeller för huvudinlägg resp. svar?

Medlem sedan dec. 19998 577 inlägg
#7

Varför inte ha både huvudinlägg och svar i samma?

Medlem sedan mars 20014 214 inlägg
#8

Vide: Om man har många inlägg och många rubriker vore det då inte smartare att ha 2 tabeller då man annars måste leta igenom alla inlägg och kolla om de är rubriker eller svar?

Medlem sedan dec. 19998 577 inlägg
#9

Nej, många poster är inga problem för en bra DB.

Medlem sedan mars 20014 214 inlägg
#10

För en bra DB... räknas acces till det :OO

Jag använder det, och då kanske jag ska tänka om...?

Medlem sedan dec. 19996 522 inlägg
#11

Nej access fungerar mycket bättre än vad många tror. Det är hur du skriver asp:n som spelar stor roll, framför allt hur du ansluter och öppnar db:n.

Självklart är en MS SQL server mycket bättre , men också mycket mycket dyrare. MySQL är ett alternativ som är vid vissa tillfällen gratis.

Medlem sedan dec. 19998 577 inlägg
#12

Access fungerar till en viss gräns, skall du inte ha 100.000 poster eller mer så funkar det bra...

255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)