使用Neo4J开发应用程序的最佳做法

时间:2018-11-22 14:18:03

标签: neo4j

我最近遇到了一个使用NEO4j作为后端的应用程序。根据我在使用SQL和其他基于键值数据库的经验,我已经理解(可以完善)其他数据库存储数据,而应用程序则通过NEO4J来存储信息。这意味着在NEO4J模型中已经捕获了导出信息的逻辑。我无法直言不讳,因为现在我已经没有可以构成的逻辑,最重要的是可以通过单元测试进行测试的逻辑。我可以肯定使用嵌入式neo4j进行了组件级测试,但是那是不一样的。有人可以帮我了解NEO4J的应用程序开发原理/方法。

1 个答案:

答案 0 :(得分:1)

  

...其他数据库存储数据,并且您的应用程序从中获取信息,而使用NEO4J则存储信息。

嗯...。定义数据并定义信息。通常情况是这样:数据是需要进一步处理才能变成信息的东西(也就是说,信息量很大-您可以从中得出一些结论或见解)。

无论如何,这是否与Graph数据库和关系/聚合数据库有关?顾名思义,数据库存储数据。

  

这意味着在NEO4J模型中已经捕获了导出信息的逻辑。

我不确定“逻辑...已被捕获”的意思。使用Neo + Cypher进行查询比使用SQL更容易。就像“找到住在柏林的朋友的所有朋友”一样,但是我很难将其与“逻辑”联系起来。

  

我没有可以构成的逻辑,最重要的是可以通过单元测试进行测试的逻辑。

“可组成的逻辑”是什么意思?恐怕与单元测试无关。如果您谈论图与其他数据库,则没有逻辑被测试。

  

有人可以帮助我了解NEO4J的应用程序开发原理/方法。

真的没有太多。 Neo4J是一个与其他任何数据库一样的数据库,只是它使用的模型与关系/聚合数据库不同。

要突出其两个优势:

  • 无联接-对于关系/聚合数据库,尤其是复杂查询,这是一个痛点。本质上,几乎所有系统都涉及一个作为图形的数据模型(为此,您在数据模型中只需要一个多对多关系),并且不使用图形数据库是降维的一种形式。关系数据库盛行多年的原因无非是一系列历史巧合。
  • 更轻松的数据库迁移-这是作为一个无模式的数据库。您将获得任何其他无模式数据库的相同好处。

我强烈建议您阅读免费的Graph Databases的“ NOSQL概述”附录。它着重于这些方面。