I tiene una tabla que contiene los bordes de nodo x al nodo y en un gráfico.SQL - postgres - camino más corto en el gráfico - recursión
n1 | n2
-------
a | a
a | b
a | c
b | b
b | d
b | c
d | e
Me gustaría crear un (materializada) vista que denota el menor número de nodos/saltos que un camino contiene acceso desde x al nodo y:
n1 | n2 | c
-----------
a | a | 0
a | b | 1
a | c | 1
a | d | 2
a | e | 3
b | b | 0
b | d | 1
b | c | 1
b | e | 2
d | e | 1
¿Cómo debe ¿Modelar mis tablas y vistas para facilitar esto? Supongo que necesito algún tipo de recursión, pero creo que es bastante difícil de lograr en SQL. Me gustaría evitar eso, por ejemplo, los clientes deben disparar 10 consultas si la ruta contiene 10 nodos/saltos.
PostgreSQL 9 tiene [CON RECURSIVO] (http://www.postgresql.org/docs/9.0/interactive/queries-with.html) pero no busco las rutas más cortas dentro de la base de datos. –