Mam tabelę, która zawiera krawędzie od węzła x do węzła y na wykresie.SQL - postgres - najkrótsza ścieżka na wykresie - rekursja
n1 | n2
-------
a | a
a | b
a | c
b | b
b | d
b | c
d | e
ja chce utworzyć (zmaterializowały) widok, który oznacza najmniejszą liczbę węzłów/chmielu ścieżka zawiera dostępne z x do węzła 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
Jak powinno Czy mogę modelować moje tabele i widoki, aby to ułatwić? Chyba potrzebuję jakiejś rekurencji, ale uważam, że jest to dość trudne do osiągnięcia w SQL. Chciałbym tego uniknąć, na przykład, klienci muszą wywołać 10 zapytań, jeśli ścieżka zawiera 10 węzłów/przeskoków.
PostgreSQL 9 ma [Z RECYKLINGIEM] (http://www.postgresql.org/docs/9.0/interactive/queries-with.html), ale nie chodzi o znalezienie najkrótszych ścieżek w bazie danych. –