让我们假设一个用户想要卖掉他的车
从技术上讲,即将在图中创建相应的Car
节点。
现在,用户改变了主意,想要保留他的车,意味着将其从销售区域中移除
因此,Car
节点应该被删除,但不是物理上的(如99%的应用程序)
处理RDBMS的大多数应用程序会将Activated
标记为false
或N
。
使用Neo4j 2.X,我想到了两个解决方案:
Cancellation
节点,通过关系Car
链接到CANCELS
。因此遵循将事实作为节点的Graph Databases book。Activated
时添加标签 Car
,并在取消时将其删除。这样,有两种方法可以检索当前要出售的汽车:
MATCH (c:Car:Activated) RETURN c
MATCH (c:Car) WHERE NOT (c)<-[:CANCELS]-() RETURN c
我应该选择哪种方式?为什么?
答案 0 :(得分:3)
使用Neo4j 2.x我会更改标签,主要是因为: