私たちはアプリの中にツリーのような構造を持つアイテムを持っています。ロールアップを使用したアクティビティフィード
(c:card)-[:child]->(subcard:card)-[:child]->(subsubcard:card) ... etc
操作は(任意のレベルで)カード上で実行されるたびに、我々はそれを記録したいと思います:あなたは、次のようなパターンを持っているかもしれません。ここではいくつかの可能なイベントは次のとおりです。
- カードのタイトルは、ボブ
- コメントはケイトがジョー
- カードの状態を言及によって追加されたことにより、承認された
リンクリストのアプローチは普及しているようですが、実行したいクエリの種類を考えれば、それがベストであるかどうかはわかりません。
- イベントの日時順の特定のカードと子カードに関連した活動のすべて、(基本的に我々はこれらのすべてを統合したいと思います。ここでは
は、私たちが実行していることになる主なクエリがあります
:活動は - 日時順の特定の人物に関連した活動のすべてをその上
我々は次のようにフィルタを追加したいのですが)一緒にフィード人によって
- フィルターは、カードが非常に頻繁に再配置することができることに注意することも重要である期間
によって
このようなモデルを作成するには、どのようにすればよいでしょうか?ありがとう!
)のおかげで、ブライアン:)のNeo4jは範囲索引でソートできますか?たとえば、イベントノードのタイムスタンプがある場合、特定の時間範囲内に収まっていて、2.その子に属しているイベントを効率的にクエリできますか? –
Neo4jは、範囲(2.3から始まる)でより高速なクエリを行うためにインデックスを使うことは間違いありません。トリックは、開始する場所が最も限定されているかどうかを確認できるようにしています。イベントの日付によるフィルタリングがより小さい出発点を与えると思われる場合は、イベントの代わりに「MATCH」を開始することができます。 –