Modeling conditional relationships in neo4j v.2 (cypher)

空扰寡人 提交于 2019-12-20 05:48:11

问题


I have two related problems I need help with.

Problem 1: How do I model a conditional relationship? I want my data to indicate that when test CLT1's "Result" property = "High", CLT1 has relationship to Disease A. If I take a node-centric approach, I imagine that the code might look something like...

(CLT 1 {Result: "High"})  -[:INDICATES] -> (Disease A)

Further, when CLT1's "Result" property = "Low", CLT1 has a relationship to Disease B

(CLT 1 {Result: "Low"})  -[:INDICATES] ->  (Disease B)

Alternatively, if I take a relationship-centric approach, the code might look like this...

(CLT 1) -[:INDICATES {Result: "High"}] -> (Disease A)
(CLT 1) -[:INDICATES {Result: "Low"} ] -> (Disease B)

Problem 2

I have had the experience that I am modeling my data, there is 1 node with a unique name, but either different labels or properties. The thing is that I want these nodes to be distinguishable. However, they are not as they look the same to cypher.

I can either give them multiple properties, labels or different names. The diversity has to be for each different class... in labels or properties (1+n labels, properties) or in different names.

Problem 2 relates to Problem 1 in that I can't model the conditional relationship or distinguish the same node (CLT1) by its labels or properties. I may have to resolve it by making the query-able "condition" in the relationship.

DO I have this right? Do I have any other options?


回答1:


For your first question, I'd take the relationship-centric approach as this kind of represents the inference of the information leading from your result-node to the disease.

Should work pretty well in modeling and querying too.

For your second question. That's what node-labels are for they represent different roles a node can play, each with different relevant properties and relationships.

So you could do MATCH (p:Person {name:"Jose"}) and treat it differently from MATCH (d:Developer {name:"Jose"}). I.e look at other props and rels.



来源:https://stackoverflow.com/questions/22309138/modeling-conditional-relationships-in-neo4j-v-2-cypher

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!