Jag vet ju inte riktigt hur du hade tänkt dig men kategorierna skulle jag lagt i separat tabell. Jag antar att du vill ha förhållandet: en kategori har 0 till flera forum. Vill man kämpa sig så kan man ju lägga flera nivåer av kategorier. Ex:
Category (tabell)
--------------------
- ID (PK)
- ParentID (FK) (null eller <0 = root-nivå)
- Title
- Description
Vem som modererar kanske kan ligga som en associationstabell för forum. Frågan är om det ska finnas kategori-moderatorer? :q
Forum
--------
- ID (PK)
- CategoryID (FK)
- Title
- Description
- CreateDate
ForumModerator
--------------------
- ForumID (FK)
- UserID (FK)
Trådarna/inläggen ser jag som som samma objekt, dvs på liknande sätt som kategorier anger man i ett fält vilket det är på den tråden som besvaras.
Post (inget superbra namn)
-----------------------
- ID (PK)
- ForumID (FK)
- ParentID (FK) (null eller <0 = en tråd)
- Author (FK) (från user-tabellen)
- CreateDate
- UpdateDate
- Title
- Text
För att hämta alla trådar (inlägg med ParentID = null) skulle i sådana bli typ såhär:
SELECT
p.*,
f.Title,
f.Description,
c.Title,
c.Description
FROM
Post p
INNER JOIN
Forum f
ON
p.ForumID = f.ID
INNER JOIN
Category c
ON
f.CategoryID = c.ID
INNER JOIN
User u
ON
u.ID = p.AuthorID
WHERE
isnull(p.ParentID, -1) = -1
ORDER BY
p.createDate DESC
eller? :l
