2011-06-10 3 views
2

나는 사용자가 아이템을 살 수있는 상점을 추적하는 프로젝트를 착수했다. Neo4j를 데이터베이스로 사용하기로 결정했습니다.그래프 데이터베이스 쿼리

이것은 데이터베이스의 일부입니다. 각 상점에 대한 노드가 있으며 각 노드에는 해당 저장소에서 사용 가능한 항목을 저장하는 하위 노드가 있습니다.

이제는 특정 사용자가 항상 자신의 모든 항목을 구입하기 위해가는 경우 특정 사용자가 자신이 구입하려는 항목의 모든 (또는 최대) 번호를 얻을 수있는 대체 상점을 알고 싶어합니다.

문제는 모든 상점과 모든 항목을 철저히 검색하고 일치하는 것이 많은 공간/시간을 필요로한다는 것입니다. 최소한의 공간/시간 비용으로이 문제를 해결할 수있는 절차/알고리즘이 있습니까?

P .: 다른 데이터베이스 문제를 매우 효율적으로 해결하기 때문에 Neo4j 만 사용하고 싶습니다.

답변

3

사용 사례가 실제로 그래프 데이터베이스에 적합합니다. 항목을 기본 노드로 구현하고 상점에 연결하는 것이 좋습니다.

Indexing Service을 사용하여 상점 노드를 색인화하십시오. 그렇게하면 상점에 대한 빠른 검색이 제공되고 특정 항목은 순회하는 것입니다. 아이템에 대한 다른 모든 매장을 얻는 것은 그 시점에서 단지 횡단으로 진행됩니다.

희망이 도움이됩니다.

+1

이 답변을 보완하기 위해 [Warehouse domain model] (http://wiki.neo4j.org/content/Warehouse)과 비슷한 도메인의 아주 오래된 예가 있습니다. 좀 봐 주면 유용 할 것 같습니다. – nawroth

+0

감사와 인식 : 감사합니다. 내 의심을 덜어주었습니다. – c0da