3

我打算使用 Neo4j 来处理我有兴趣创建的数据库。

我还没有确定我将用来表示我的域的数据模型,但让我们假设一个数据库模型具有 Evaluator 和 State 节点,它们之间的关系尚未定义。我需要数据库做的事情如下......

功能 1 每个 Evaluator 的结果可以高于或低于基本范围。对于给定的 Evaluator (E1),如果结果高于基本范围 (BR),则与状态 S1 存在关系。如果结果在基准范围 (BR) 内,则与任何国家都没有关系。如果结果低于基本范围 (BR),则与状态 S2 有关系。因此,一个 Evaluator 可能有两个属性:结果和基本范围。基础范围可以表示为基础范围高和基础范围低,以便于计算。

假设用户为给定的 Evaluator 输入了结果;我希望该输入调用一个自动查询,该查询取决于与基本范围相关的结果值。该查询将返回与具有给定结果值的评估器相关的所有状态。这里的关键思想是取决于用户输入值的条件关系。我敢肯定还有其他方法可以做到这一点(关系属性?),但我对基于用户输入的条件关系的相同想法感兴趣。

功能 1 可以完成吗?

功能 2 然后假设有 2 个评估器 E1 和 E2。可以说,具有高于或低于其不同基本范围的值的评估器的各种组合与 S1、S2…Sn 具有条件关系

        E1 High, E2 low; relationship with S1
        E1 High E2  BR; relationship with S2
        E1 High, E2 High; relationship with S3
        E1 BR,  E2 High; relationship with S4
        E1 low, E2 High; relationship with S5
        E1 BR, E2 BR; no relationship to a State

假设用户为 E1 和 E2 的结果输入了一个值。我希望该组合能够调用一个自动查询,该查询也取决于与基本范围相关的结果值。该查询将返回与 E1 和 E2 相关的所有状态以及给定的结果值。这里的关键思想是取决于用户输入值的组合条件关系。

功能 2 可以完成吗?

4

1 回答 1

0

这个问题似乎真的面向您的应用程序域逻辑,而不是 Neo4j 本身。使用 Neo4j,完全可以动态添加/删除节点、添加/删除关系等。对于功能 1,您只需要添加或删除E1S1/之间的关系S2(通过您的应用程序逻辑;没有自动条件关系依赖的机制)。对于函数 2,您将再次添加或删除E1/E2S1-之间的关系S5(或者只是离开E1&E2没有任何关系)。

您将能够通过 Cypher 执行任何查询+添加或查询+删除(最新文档在此处)。

于 2013-08-25T03:11:41.887 回答