Vinnaren i pepparkakshustävlingen!
2010-10-04, 20:03
  #1
Medlem
Håller på att göra ett forum i ASP.NET (MSSQL) och vill ha era synpunkter på hur jag tänkt bygga upp det innan jag börjar med själva forumdelen (Har gjort klart inloggning och registrering).

Tänkte göra ett inte allt för avancerat forum med underkategorier till varje ämne.

Tabell 1, forumkategorier:

id INT (PK)
titel VARCHAR
beskrivning TEXT
datestamp DATETIME

Tabell 2, forumets underkategorier:

id INT (PK)
tillhör_kategori INT (FK som knyter ihop kategorier med underkategorier)
titel VARCHAR
beskrivning TEXT
datestamp DATETIME

Tabell 3, forumposts:

id INT (PK)
tillhör_kategori (INT)
tillhör_underkategori (INT) (en av detta blir FK, beroende på om posten ska i en underkategori eller inte)
tillhör_användare (INT) (FK till ID på användatabellen (nämns inte här))
titel VARCHAR
innehåll TEXT
datestamp DATETIME

Funderar väl mest på om detta är smartaste sättet att knyta ihop inlägg med kategorier/underkategorier. Kom gärna med synpunkter och eventuella förslag på ändringar. Tacksam för svar!
Citera
2010-10-04, 20:14
  #2
Medlem
FSharps avatar
Det är väl det vanliga standardutförandet i alla fall.

Inga konstigheter, ett vanligt forum.

Det är bara att köra på.

Det enda du eventuellt saknar är mer beskrivande kategorier, t.ex. om en post är borttagen (Generellt är det bättre att använda en bool än att bara ta bort den från databasen), men det kan du alltid lägga till senare.

En annan fördel om du inte är en klippa på SQL är att lägga till en postcount och kanske till och med last_post på tråd-delen. Det blir inte lika elegant tabellstruktur men du slipper räkna ihop alla inlägg varje gång du ska lista alla trådar.
Citera
2010-10-04, 20:20
  #3
Medlem
Kom ihåg att aldrig använda "åäö" i något namngivande vare sig det gäller databaser eller programmering. Det är som gjort för att få problem!
Citera
2010-10-04, 20:30
  #4
Medlem
Citat:
Ursprungligen postat av clooak
Kom ihåg att aldrig använda "åäö" i något namngivande vare sig det gäller databaser eller programmering. Det är som gjort för att få problem!
Kom ihåg att aldrig någonsin under några omständigheter använda svenska namn i programmering
Citera
2010-10-04, 20:38
  #5
Medlem
Tack för svaren

Glömde säga att jag inte tänkte använda dessa namnen i tabellerna, jag brukar skriva all kod på engelska. Ville bara skriva ut det snabbt så ni förstod vad jag menade.

Citat:
En annan fördel om du inte är en klippa på SQL är att lägga till en postcount och kanske till och med last_post på tråd-delen. Det blir inte lika elegant tabellstruktur men du slipper räkna ihop alla inlägg varje gång du ska lista alla trådar.

postcount = SELECT COUNT(*) FROM...etc? , eller du tänkte ett eget fält?

vad det gäller senaste inlägget blir det väl något i stil med: SELECT TOP 1 * FROM inläggen ORDER BY datestamp DESC (i MSSQL).

Inget annat ni tycker jag skall ändra eller lägga till?
Citera
2010-10-04, 20:39
  #6
Medlem
Citat:
Ursprungligen postat av K0nserv
Kom ihåg att aldrig någonsin under några omständigheter använda svenska namn i programmering

Glömde skriva det Varför man aldrig använder åäö och kravet på just engelska är för att vem som helst ska kunna ta sig an din kod utan svårigheter.



Citat:
Ursprungligen postat av filyr
Tack för svaren

Glömde säga att jag inte tänkte använda dessa namnen i tabellerna, jag brukar skriva all kod på engelska. Ville bara skriva ut det snabbt så ni förstod vad jag menade.



postcount = SELECT COUNT(*) FROM...etc? , eller du tänkte ett eget fält?

vad det gäller senaste inlägget blir det väl något i stil med: SELECT TOP 1 * FROM inläggen ORDER BY datestamp DESC (i MSSQL).

Inget annat ni tycker jag skall ändra eller lägga till?

Tror nog att han tänkte lite fel och (att skapa en ny kolumn för att räkna ihop alla poster) Hur skulle det gå till

Nah du kan lugnt jobba vidare och göra som du tänkte, glöm inte bort att hindra folk från att använda sql injections på din sida speciellt vid inloggningen =)
__________________
Senast redigerad av clooak 2010-10-04 kl. 20:45.
Citera
2010-10-05, 17:00
  #7
Medlem
Mys-Hitlers avatar
Citat:
Ursprungligen postat av clooak
Tror nog att han tänkte lite fel och (att skapa en ny kolumn för att räkna ihop alla poster) Hur skulle det gå till
Nej, han tänkte helt rätt. Lagra postcounten som ett heltal som du räknar upp när användaren gör ett inlägg (och räknar ner om inlägget av någon anledning försvinner), så slipper du en massa tidsödande COUNT()-operationer.
Citera
2010-10-05, 19:04
  #8
Medlem
Citat:
Ursprungligen postat av Mys-Hitler
Nej, han tänkte helt rätt. Lagra postcounten som ett heltal som du räknar upp när användaren gör ett inlägg (och räknar ner om inlägget av någon anledning försvinner), så slipper du en massa tidsödande COUNT()-operationer.

Sant, läste fel självklart om man ska lagra hur många poster personen har gjort, så skall man spara det och undvika så många operationer som är möjligt.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback