私は trartsaris.gr でブログを完全に php と Neo4j 2.0 で作成しました。多くのテストを行い、将来について考えた後、最初に説明した方法でコメントを有効にすることにしました。つまり、スキーマ設計の最後に、データベースは次のようになります
(m:Post "or topic")-[:COMMENT]-(n:Comment)-[:SUB_COMMENT]-(s:SubComment)
投稿またはトピックであるノードがあり、このノードは Label:Comment と relationship:Comment で接続されたノードを持ち、これらのコメントは Label:SUB_COMMENTS でサブコメントを持つことができます。すべてが十分に高速であるため、作成されるノードの数とそれらがどのように取得されるかについて心配する必要はありません。この質問に対する私の回答を少し読むことができます。私が最初の方法を好む理由を見てみましょう。将来の潜在的な使用例について考えています。後で次のようなことができます: 私は別のユーザーのトピックのコメントにコメントしたユーザーです。このアクションに基づいて、このユーザーによる関連トピックをデータベースで検索し、さらに読むための提案を行うことができます。
MATCH (n:User(ID))-[:WROTE_SUB_COMMENT]-(s:SubComment)-[:SUB_COMMENT]-(c:Comment)-[:COMMENT]-(p:Post)-[:WRITTEN_BY]-(k:User)-[:WRITTEN_BY]-(g:Post) WHERE blablabla RETURN g
簡単に言えば、最初のユーザーがサブコメントを書いたユーザーによって書かれたすべての投稿を見つけたいと言います。現時点では少し混乱しているように見えるかもしれませんが、Neo4j にどんどん飛び込んでいくと、すべてが日々簡単になっていることがわかるでしょう。それが少し役立ったことを願っています。