【发布时间】:2019-01-23 19:11:50
【问题描述】:
我在 Neo4J 中有以下架构:
简短说明:
- 来自“Helmut”的节点 1、2、3(黑色)是提要帖子。
- “Doe”中的节点 1、2、3、4、5、6(红色)是提要帖子。但是来自“Doe”的节点 1,2 是 2 的共享,然后是来自“Helmut”的 1。因此,来自 Doe 的节点 1 是来自“Helmut”的节点 2 的份额,来自“Doe”的节点 2 是来自“Helmut”的节点 1 的份额。共享节点通过“ORIGIN”连接连接,因此我可以获得原始节点的隐私属性。
我想删除节点“Helmut”并与他一起执行以下步骤:
- 断开(删除)用户“Helmut”的连接“livesInCity”、“livesInCountry”、“isFriendsWith”
- 其他用户,例如“Doe”,具有通过“ORIGIN”连接与其他节点连接的节点。这意味着该节点是来自另一个节点的共享。在我的示例中,用户“Doe”节点 1 和 2 是“Helmut”节点的共享。与来自用户“Helmut”的绿色节点(通过 FEED_ITEMS 或 NEXT 连接)具有“ORIGIN”连接的所有节点都需要具有“已删除”状态 - 这只是一个表示“已删除”的字符串。
- 删除来自用户“Helmut”的所有 feed_items 和下一个节点
- 删除用户“Helmut”节点。
我是 neo4j 的新手,所以我想知道这是否可以在单个查询中实现,或者需要单独处理。
我希望在某个时候会有很多具有“ORIGIN”连接的节点。源连接意味着这是一个源共享。我想知道设置许多状态为“已删除”的节点的速度意味着什么。我需要在单独的调用中执行此操作(例如作为 MQ 进程),或者在表单/url 服务器请求中执行此操作?
另外,如果我删除节点“Helmut”而不是连接,比如说国家和城市之间的连接,这些连接是否会作为幽灵连接保留在那里,或者一旦节点消失,它们就会被删除?
【问题讨论】:
-
你能改写第 2 步吗?我觉得很不清楚。例如,“Doe”的第一个和第二个节点是什么意思?究竟哪些节点需要具有“删除”状态,是布尔“删除”属性还是字符串“状态”属性,还是...?
-
@cybersam 嘿,请查看我更新的问题。我希望这次我说得够清楚了。谢谢!