私はneo4jを初めて使用しており、db設計哲学に関する助けに感謝します。Neo4jデータベース - リンクまたはプロパティ?
私は私のデシベルの動物の1,000sを持っており、それぞれが約10種(ウシ、ヒツジ、ヤギ、ネコ、イヌ.....)の一つである
リレーショナルDBに私が持っているでしょう動物表と種表とを含み、各動物の種は、動物IDと種IDとの間の結合によって定義される。
neo4jでは、動物をその性質の1つとしてノードと種として持つことが「明白な」アプローチです。しかし、これは、綴りの違いなどのリスクを伴う種名の1000個のコピーを維持するという古典的な問題に直面しているからです。
: - [のis_a] - (デイジー:動物)>のis_a関係を有する種(ウシ:ウシ)
こと恐ろしく不器用な '感じ'。ほぼすべての検索は、特定の動物/種の組み合わせになります。
「好ましい」ソリューションとは何ですか?
似たような決定があります。すべての動物は「生きている」または「死んでいる」のいずれかです。私はそれを財産にするのですか?あるいは、生きて死んだと呼ばれる2つのノードの1つに動物を向けるのですか?動物として扱うあなたは、いくつかの種を越えてクエリを実行する必要がある場合は
(daisy:Cow{name:'daisy'}), (daffy:Duck{name:'daffy'})
、:
あなたはその種の動物としてあなたのラベルとして種を使用して、ノード試みることができる任意のポインタ