Du kan bara använda en tabell, som innehåller ett ParentID-fält. Om posten inte har något värde är det en kommentar, annars är det ett svar (på antingen en kommentar eller ett svar).
Du kan fråga postens ParentID-post (inspektera den är ParentID) för att se om detta svar är på en kommentar eller ett svar.
Redigera :Ovanstående är en ganska praktisk lösning. Men för att gå med en normaliserad version, behåll fortfarande den ena kommentarstabellen (utan ParentID) och skapa en ReplyTo-tabell som har ett CommentID och ett ResponseID, som båda är ID:n för posterna i kommentarstabellen.
Med den här idén kommer följande sql att visa kommentarerna och "svaret" på varje kommentar för varje svar som 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åpekar kommer den inte att visa kommentarer utan svar - för detta behöver du en yttre kopplingsfråga (testade inte syntax):
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