Существует таблица distances(city1, city2, dist)
, которая перечисляет пару городов и расстояния между ними. Дело в том, что из этой информации мы можем получить больше расстояний, как в таблице distances
dist A -> B и dist B -> C, чтобы мы могли получить A -> C, который не находится в distances
.MySQL транзитное закрытие дистанционной радиосвязи
Задача состоит в создании таблицы distances_tr(city1, city2, dist)
с транзитивным закрытием 1-й таблицы, которая будет включать (A, C, dist(A,C))
.
Как я могу достичь, используя PROCEDURE
и простые команды SQL SELECT, INSERT, UPDATE
? Я знаю, что это можно сделать рекурсивно, но профессор сказал нам сделать это в обоих направлениях.
Вы ищете только расчеты расстояния второго порядка или это проблема коммивояжера? (BTW есть тег для этого) – symcbean