ノードとリレーションのグラフに時間関連の情報を保存したい。理想的には、プログラミング言語では、ソートされたマップを使用して、キーとして日付と属性として関連付けられた各値(たとえば価格)を関連付けます。 「支払われた」というマップと、「2016/02/12」、「2016/03/21」、5; .....のようなエントリを持つPERSON 同じことはレストランとの関係PERSONにはいつ、どのくらいの金額があるかを知るために「支払われた」という同じマップがあります。Neo4Jに関連するものを保存する
Neo4Jでは、わかりません。私は2つの配列をプロパティとして格納することができました。日付と価格は1つですが、問題は順序を尊重して挿入する方法です(最後に挿入したものは新しいものではありません)。 XとYの間に日付があります。これはCypherでは私にとっては些細なことではありません。
もう一つのアイデアは、日付ごとに1つのリレーションを作成することです。これにより、グラフは同じノード間の関係が膨大になりますが、照会する方が簡単です。これはノードの問題を解決するものではなく、リレーションシップのみを解決します。
私はここで別の解決策を見ました:各日付のプロパティを追加してください。 Person.2016/02/12 = 2、Person.2016/03/21 = 5など... Neo4Jはこのタイプのプロパティの名前付けを受け入れず、これをクエリする方法がわかりません日付。
ご協力いただければ幸いです。
ありがとうございます!
--edit-- 実際には、多くの支払いノード(基本的には1日、1日、1年間、数十万ノードのノード)が必要になります。支払いノードを追加するとグラフが大きくなりますロット。実際には、私はJavaなどで挿入を行うことができたので、基本的に私は常に2つの配列を自分のノード/リレーションでソートします...私がグラフを照会できるかどうかは分かりません> = date1となる配列 "dates"のインデックスと配列 "dates"のエントリのインデックス< = date2
おかげで、それは私がやったかについての解決策であります私はそれがレストランの例のために非常にエレガントだと言わなければならないが、私のアプリケーションは正確にこれではないと私は多くの支払いノードが必要になります(基本的に1日1日、毎日、数十年間ndsのノード)、これは私のグラフが大きくなるようにします。私は本当にプロパティとしてそれを保持したいと思います。 –
まだ、グラフデータベースであり、ノードや関係を管理する方法を知っています。しかし、ええ、私はあなたのユースケースを知らない、ちょうどあなたの短い例に基づいていくつかのクエリを想像した。あまりにも多くのデータをロードするのを避けるために、早期にフィルタリングするという利点があります。一方、1つのノードに多くのプロパティを配置すると、必要な場合でもそうでなくてもロードできます。 –