可以在Neo4j中设计条件和组合条件关系吗?

时间:2013-08-25 02:33:29

标签: neo4j

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

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

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

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

CAN功能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相关的状态。这里的关键思想是组合条件关系,取决于用户输入的值。

CAN功能2完成了吗?

1 个答案:

答案 0 :(得分:0)

这个问题看起来真的面向你的应用领域逻辑,而不是Neo4j本身。使用Neo4j,完全可以动态添加/删除节点,添加/删除关系等。对于功能1,您只需添加或删除E1S1 / {{之间的关系1}}(通过你的app逻辑;没有依赖的自动条件关系机制)。对于功能2,您再次添加或删除S2 / E1E2 - S1之间的关系(或者只留下S5& { {1}}没有任何关系。)

您可以通过Cypher执行任何查询+添加或查询+删除(最新文档为here)。