Сохранение графика в базе данных MySQL - PullRequest
2 голосов
/ 22 марта 2012

У меня проблема с хранением и запросом графа к базе данных SQL. Я прочитал несколько уроков о хранении деревьев в реляционных БД, но мой график немного отличается.

Вы можете увидеть пример графика на моей картинке http://i.stack.imgur.com/J57v6.png. У него есть корневой узел, и по краям вы можете "дойти" до некоторых конкретных узлов. Важно то, что этот граф не включает в себя круги (петли). Если вы выберете какой-нибудь узел, например, 3, вы перейдете к узлам 4,5,6. Таким образом, всегда есть конечное количество посещенных узлов.

Сохранение этого не будет большой проблемой, но проблема в том, что мне нужно запросить этот график. Например, мой запрос ввода может быть узлом 3, тогда я ожидаю, что результат будет содержать узлы 4,5,6, даже если между 3 и 4 нет ребра, но есть путь от 3 до 4 над 5. И это целая проблема.

Я ожидаю, что на этом графике будет около 10 000 узлов. Наиболее важным является скорость запроса, который я написал выше. Вставка / удаление / обновление узлов и ребер может быть намного медленнее.

У вас есть идеи, как хранить и запрашивать этот график?

Заранее спасибо

Пример графика: http://i.stack.imgur.com/J57v6.png

...