У меня есть контент с до 2-х уровней ответов. Мне интересно, какой самый эффективный способ получить и вывести ответы. Должен отметить, что я планирую хранить комментарии с полями content_id
и reply_to
, где reply_to
указывает на какой комментарий он отвечает (если есть). Любая критика этого дизайна приветствуется.
В псевдокоде (ish) моя первая попытка будет:
# in outputting content CONTENT_ID
all_comments = fetch all comments where content_id == CONTENT_ID
root_comments = filter all_comments with reply_to == None
children_comments = filter all_comments with reply_to != None
output_comments = list()
for each root_comment
children = filter children_comments, reply_to == root_comment.id
output_coments.append( (root_comment, children) )
send output_comments to template
Это лучший способ сделать это? Заранее спасибо.
Редактировать: Если подумать, я захочу сохранить порядок дат в комментариях, поэтому мне придется сделать это немного по-другому, или, по крайней мере, просто отсортировать комментарии позже.