2010-03-29 3 views
1

J'ai du contenu avec jusqu'à 2 niveaux de réponses. Je me demande quel est le moyen le plus efficace d'aller chercher et de sortir les réponses. Je dois noter que je prévois de stocker les commentaires avec les champs content_id et reply_to, où reply_to fait référence à quel commentaire il répond à (le cas échéant). Toute critique sur cette conception est la bienvenue.Le moyen le plus efficace d'aller chercher et sortir du contenu avec des commentaires à 2 niveaux?

En pseudo-code (ish), ma première tentative serait:

# 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 

Est-ce la meilleure façon de le faire? Merci d'avance.

Éditer: À la réflexion, je veux conserver l'ordre des dates sur les commentaires, donc je vais devoir le faire un peu différemment, ou au moins juste trier les commentaires après.

Répondre

1

Si vous voulez quand même afficher tous les commentaires, il vous suffit de les récupérer en une seule opération, puis de construire l'arborescence en Python.

+0

C'est ce que le code fait si je ne me trompe pas. – awegawef

+0

Désolé, j'ai mal lu le 'filtre' en tant que 'fetch', et je pensais que vous faisiez plusieurs récupérations. En tout cas, vous avez raison de dire que c'est la meilleure option. –

Questions connexes