次のような単純な関係があるとします
CREATE (a:Company { name:"Apple" })-[:BUYS]->(b:Company { name:"Beats" })
ここで、関係に関するメタデータを収集したいと思います:BUYS
-その関係を作成したユーザーと、これを確認するソースは何ですか。このために、新しいノードを作成し、他のノードをそれに接続します。
MATCH (a:Company { name:"Apple" }),(b:Company { name:"Beats" })
CREATE a-[:IS_BUYER]->(ab:Buyout { name:"Apple-Beats" })<-[:IS_SELLER]-b
MATCH (u:User { name:"Fred" }),(n1:Newspaper { name:"Washington Post" }),
(n2:Newspaper { name:"Financial Times" }),(ab:Buyout { name:"Apple-Beats" })
CREATE u-[:CREATED]->ab<-[:CONFIRMED_BY]-n1,ab-[:CONFIRMED_BY]->n2
今、私はいくつかの質問があります:
- ほとんどの場合、クエリは
:BUYS
リレーションシップのみに関心があるため、そのままにしておくと、それらのクエリのパフォーマンスが向上しますよね? - これをモデル化するための他のより良い方法はありますか?
- 具体化されたノードの名前/ID を生成する良い方法は何ですか?
- 関係の削除を
:BUYS
対応する:Buyout
ノードにカスケードする方法はありますか?