[Pgsql-ayuda] Estructura para un foro

Alvaro Herrera Munoz alvherre@dcc.uchile.cl
Wed, 10 Dec 2003 19:25:30 -0300


On Wed, Dec 10, 2003 at 11:26:36PM +0100, Borja Mart?n wrote:

> querr?a implementar un foro que tenga la posibilidad de mostrar las 
> respuestas en forma de arbol y la duda surge empezando por la estructura a 
> elegir para la base de datos. habia pensado que exisa un campo un id con un 
> valor por defect igual a 0, y a su vez un campo parent que indicaria a que 
> mensaje pertenece la respuesta, de tal manera que empezaria haciendo un 
> query mostando los mensajes que tengan un parent igual 0, y luego por cada 
> resultado obtenido, haria otro query para ver las respuestas que tienen 
> como parent el id del resultado en cuestion.
> el problema es que solucion entra?a demasiados queries y querria saber si 
> conoceis alguna mas eficaz de implementar esto.

Yeah.  Este es un topico recurrente; el mecanismo que propones es horrible de
ineficiente.  En un libro de Joe Celko ("SQL for Smarties") se trata con un
mecanismo que llama "nested sets".  Revisa eso, te puede servir.  Hay otros
mecanismos, "adjacency lists", "materialized nested sets", etc.  En la lista
pgsql-general se estuvo discutiendo este tópico justamente esta semana.  Mira
los archivos de esa lista.

En cualquier caso tu mejor apuesta creo que es el libro de Celko.

Suerte,

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Llegará una época en la que una investigación diligente y prolongada sacará
a la luz cosas que hoy están ocultas" (Séneca, siglo I)