2012-04-29 19 views
2

私は、グラフデータベースの概念をよりよく理解し、Neo4Jを学び、それが私に提供できるものを見るために小さなアフィリエイト構造を開発しています。私は数年前からRDBMSに携わってきましたが、Cypherはかなり荒いです。私は非常に簡単なアフィリエイトシステムを構築しようとしています。Neo4jでマルチレベル関係のCypherクエリーを記述しますか?

アフィリエイトジョーはMary、Bob、Markを紹介しています。だから、私はすべてのノードを作成し、 "参照された"関係を作成します。今、メアリーはジュリー、ジェシカ、そしてジョーンを指しています。 BobはBillyとBaxterを指します。 MarkはMichaelとMarxを指します。そしてその紹介は人々を参照し続ける。

ジョーのオリジナルリフェラルのいずれかのリフェラルについて、ジョーは「世代」を獲得します。彼の第一世代はMary、Bob、Markです。彼の第二世代はジュリー、ジェシカ、ジョアン、ビリー、バクスター、マイケル、マルクスです。

ここでCypherクエリを使用して、世代を見つけてその番号を見つけることができますか?木の中の彼らの場所?彼の第3世代または第4世代の人が誰で、どの人が誰であるかをどのように知ることができますか?

私の心はここにねじれています。皆さんが助けてくれることを願っています。

答えて

3

ビニー、http://tinyurl.com/7vryzwzで 見ては、基本的には、ワンダフル

START referrer=node(1) 
MATCH path=referrer-[:referred*1..]->refferee 
RETURN referrer,refferee, length(path) as generation 
ORDER BY length(path) asc 
+0

、ピーターあなたがlookadているものこれです。どうもありがとうございました! – vinnylinux

関連する問題