Можете да използвате само една таблица, която включва поле ParentID. Ако записът няма стойност, това е коментар, в противен случай е отговор (на коментар или отговор).
Можете да направите заявка към записа ParentID на записа (проверете той е ParentID), за да видите дали този отговор е на коментар или отговор.
Редактиране :Горното е доста практично решение. Въпреки това, за да преминете към нормализирана версия, все пак запазете една таблица с коментари (без ParentID) и създайте таблица ReplyTo, която има CommentID и ResponseID, като и двете са идентификаторите на записите в таблицата Comments.
Използвайки тази идея, следният sql ще покаже коментарите и „отговора“ към всеки коментар за всеки отговор, който има коментар:
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
Както посочва Димитрий, той няма да показва коментари без отговори - за това се нуждаете от външна заявка за присъединяване (не тества синтаксис):
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