2012-03-22 6 views
2

그래프를 SQL 데이터베이스에 저장하고 쿼리하는 데 문제가 있습니다. 관계형 DB에 트리를 저장하는 방법에 대한 튜토리얼을 읽었지만, 내 그래프는 다소 다릅니다.그래프를 MySQL 데이터베이스에 저장하기

내 그림에 샘플 그래프 http://i.stack.imgur.com/J57v6.png을 볼 수 있습니다. 루트 노드가 있고 가장자리로 특정 노드로 "걸어 갈"수 있습니다. 중요한 것은이 그래프가 원 (루프)을 포함하지 않는다는 것입니다. 어떤 노드 (예 : 3)를 선택하면 노드 4,5,6으로 이동하게됩니다. 따라서 항상 방문한 최종 노드가 있습니다.

큰 문제는 아니지만 문제는이 그래프를 쿼리해야한다는 것입니다. 예를 들어, 내 쿼리 입력은 노드 3 일 수 있습니다. 결과에 노드 4,5,6이 포함될 것으로 예상되는 것보다 3 ~ 4 사이의 에지가 없지만 5에서 3까지의 경로가 있습니다. 그리고 이것은 전체적인 문제입니다.

이 그래프에는 약 10 000 개의 노드가있을 것으로 예상됩니다. 가장 중요한 것은 위에서 쓴 쿼리 속도입니다. 노드 및 가장자리 삽입/삭제/업데이트 속도가 훨씬 느려질 수 있습니다.

이 그래프를 저장하고 쿼리하는 방법에 대한 아이디어가 있으십니까?

은 사전에 감사

그래프

샘플 : http://i.stack.imgur.com/J57v6.png

답변

관련 문제