1

我看到 Neo4j 可以作为 Impermanent DB 运行以进行单元测试,我不确定这是否符合我的需要。我以通常的方式(持久)将我的数据存储在 neo4j 中,但是,从我的数据开始,我想让每个用户开始一个“实验会话”:用户添加/删除节点和关系,但不是永久的方式,只是试验与数据(在该会话之后,编辑应该丢失)。编辑不应该被保存,而且它们不应该被其他人看到。实现这一目标的最佳方法是什么?

4

2 回答 2

1

使用无常数据库应该可以工作。你会

  • 需要将数据导入每个新数据库

  • spring-data-neo4j 无法连接到多个数据库(在当前版本中),您需要启动应用程序的多个实例,例如在 tomcat 容器中

  • 当您的应用程序停止(或崩溃)时,您显然会丢失数据

或者,您可能仅使用 1 个数据库,其中基础数据是公开的(= 对所有人可见),然后对于所有新节点/关系,您可以添加所有者属性。

查询数据时,您将检查该属性是公共的还是当前用户。

在会话结束时,您只需删除与给定所有者的所有节点和关系。

如果您还想编辑现有数据,那么它会变得更加复杂,您可以创建节点/关系的副本并以某种方式处理它,或者如果它不是太大,则复制整个数据集。

于 2017-07-03T07:44:44.110 回答
0

您可以从 neo4j 基础镜像构建一个 docker 镜像(或构建您自己的镜像)并将您的 graph.db 复制到其中。

然后你可以让每个用户从所述图像启动一个 docker 容器。

如果这不能回答您的问题,则需要更多信息。

于 2017-07-02T17:23:25.200 回答