Estoy planeando una extension de comentarios y deben ser anidados (threaded) y, de preferencia, que puedan paginarse.
El principal problema de esto, es que la mayoria de soluciones que he visto (incluyendo la mia en la primera version) hay que obtener todos los comentarios y agruparlos con sus respectivas respuestas por medio de bucles, lo que complica muchisimo la paginacion.
Pensando en facilitar un poco esto, se me ocurrio que podria agregar un campo para ordenar, quedando la tabla mas o menos asi:
Entonces, en cmorder guardaria:
1- Mensaje original, solo la id
2- Respuesta a original: id-original.id-respuesta
3- Respuesta a respuesta: id-original.id-respuesta-padre.id-respuesta
Como ejemplo:
Código:
id resp orden
1 0 1
2 1 1.2
3 0 3
4 2 1.2.4
5 1 1.5
6 4 1.2.4.6
7 2 1.2.7
Ordenado:
1
1.2
1.2.4
1.2.4.6
1.2.7
1.5
3
Esto facilitaria muchisimo tanto generar la lista como la paginacion y, al crear un nuevo comentario, lo unico que habria que hacer es obtener la id y actualizar despues el orden y estoy casi seguro que optimizaria recursos (memoria, cpu y tiempo)... ya lo comentare cuando lo pruebe.
El problema es que con esto solo podria obtener los comentarios en orden ascendente (primero los mas antiguos) y me gustaria, si alguien puede colaborar, ver la forma de poder obtenerlos tambien en forma descendente, preferentemente, sin tener que recurrir a una funcion en PHP, porque primero aparecerian las respuestas y al final el comentario original.
Todas las opiniones y comentarios son bienvenidos.
Gracias.