2017-12-06 8 views
0

ムービーDBを例にしましょう。 映画の中で働いていたすべての人物をDBに挿入すると、すべての人物の関係名を見つけることが難しくなります。 sound_designer、sound_engineer、set_designer、set_assistance、cable_guyなどのようなエンティティを同じ関係 "WORKS_IN"を持つMovieエンティティに持たせることは問題になりますか?出来ますか?それは良い解決策ですか?問題はありますか?代わりがありますか?Neo4jでは、異なるエンティティに同じリレーションシップ名を持たせることが可能です

+1

このような質問に対して正確な答えを提供することは非常に困難です。同じ関係を持つ複数のノードラベルを持つことは完全に可能です。乗組員のために共通のラベルを付け、それをノードに追加することをお勧めします(例: 'CrewMember:SoundDesigner'、':CrewMember:SoundEngineer'など)。私はこの設定では何の問題も期待していませんが、実装して、あなたのユースケースで動作するかどうかを調べる必要があります。 –

答えて

0

コメント内のGaborの答えは良いです、同じノードと同じタイプの関係を持つ異なるラベルのノードに問題はありません。

役割を持つ複数ラベル付けノードは、悪い考えではありませんが、グラフでキャプチャされた人の役割は一定であると仮定しています。または、むしろ、ラベルは彼らの歴史全体の中でどのような役割を果たしているのでしょうか。特定の映画内でどのような役割を演じたかは、roleのような関係自体の特性として期待されます。同じ映画に対して複数の役割を持つ人がいれば、リストを再生する俳優に似ています(ACTED_IN関係のリストのプロパティがrolesの場合)。

関連する問題