Возможно, вы сможете попробовать какую-то форму алгоритма A * . В основном, это рассматривает каждый из возможных следующих вариантов выбора и применяет к нему эвристику, функцию, которая приблизительно определяет, насколько далеко она находится между этим узлом и вашей целью. Затем он выбирает тот, который ближе и повторяется. Самая сложная часть реализации A * - это разработка хорошей эвристики.
Без дополнительной информации о том, как таблицы сочетаются друг с другом, или о том, что вы подразумеваете под «путем» к таблицам, трудно что-либо рекомендовать.
Похоже, мне не понравилась моя ссылка, вероятно * в ней, попробуйте:
http://en.wikipedia.org/wiki/A*_search_algorithm
Edit:
Если бы это была вся база данных, я бы пошел с исчерпывающим поиском в глубину .