2012-03-22 3 views
2

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

Вы можете увидеть примерный график на моем снимке 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

ответ

Смежные вопросы