Du kan bare bruge en tabel, som indeholder et ParentID-felt. Hvis posten ikke har nogen værdi, er den en kommentar, ellers er den et svar (enten på en kommentar eller et svar).
Du kan forespørge på postens ParentID-post (undersøg den er ParentID) for at se, om dette svar er på en kommentar eller et svar.
Rediger :Ovenstående er en ret praktisk løsning. Men for at gå med en normaliseret version skal du stadig beholde den ene kommentartabel (uden forældre-ID) og oprette en ReplyTo-tabel, som har et CommentID og et ResponseID, som begge er ID'erne for posterne i kommentartabellen.
Ved at bruge denne idé vil følgende sql vise kommentarerne og 'svaret' til hver kommentar for hvert svar, der har en kommentar:
select c.comment, r.comment as reply
from comment as c, comment as r, replyto as rt
where c.ID = rt.CommentID
and r.ID = rt.ReplyID
Som Dimitrii påpeger, vil den ikke vise kommentarer uden svar - til dette har du brug for en ekstern joinforespørgsel (testede ikke syntaks):
SELECT c.comment, r.comment as reply,
from Comment c
left outer join Comment r on c.id = r.id
left outer join replyto rt on rt.responseid = r.id