2009-06-14 27 views
0

J'essaie de créer un système de commentaires pour un blog. J'ai le système traversé de précommande modifié fonctionnant (utilisé ce guide: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/).Parcours de précommande modifié pour système de commentaires

J'ai cependant quelques problèmes. Je ne pense pas que ce guide explique comment gérer différents posts de blog, et ajouter un commentaire qui n'est pas une réponse.

ma table commentaire ressemble:

+-------------+----------------------+-----+-----+ 

| comment_id | message    | lft | rgt | 
auto increment 
+-------------+----------------------+-----+-----+ 

Est-ce une bonne façon de gérer ceci:

ajouter la colonne à ma table commentaires disant "blog_post_id" et "root". Lorsque je fais un post sur un blog, j'ajoute une entrée dans le tableau des commentaires avec le blog_post_id, et root sur true. Ensuite, le lft est le comment_id et le droit est le comment_id + 1.

Pour charger les commentaires pour un article de blog, je trouverais le lft et le rgt O WH le blog_post_id = x et root = true, puis sélectionnez tous les commentaires entre le lft et le rgt où le blog_post_id est x ...

Je viens d'arriver avec cette méthode, donc je suis sûr qu'il doit y avoir un meilleur moyen.

Merci

Répondre

0

Que diriez-vous d'ajouter une colonne blog_post_id et compte tenu du billet de blog lui-même comme un commentaire virtuel (la racine de l'arbre de commentaire)? Ensuite, il peut avoir plusieurs enfants.

En utilisant cette méthode, vous pouvez utiliser tous les algorithmes de cet article inchangé, avec la mise en garde que vous ajoutez AND blog_post_id == foo à toutes les requêtes et toujours ignorer le commentaire racine (car il signifie le blog lui-même.)