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?
11 svar · 294 visningar · startad av Skarre
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?
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?
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.
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
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.
Med andra ord bör jag ha separata tabeller för huvudinlägg resp. svar?
Varför inte ha både huvudinlägg och svar i samma?
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?
Nej, många poster är inga problem för en bra DB.
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.
Access fungerar till en viss gräns, skall du inte ha 100.000 poster eller mer så funkar det bra...