【发布时间】:2014-04-28 07:35:07
【问题描述】:
在 mysql 等关系数据库中,我习惯于通过设置 deleted_at 来进行软删除。然后检索 SELECT 只需获取行 WHERE deleted_at IS NULL。
我很困惑如何在 neo4j 数据库中实现软删除。我有多种方法,但不确定哪种方法或组合会更有优势。
我也阅读了Neo4j: implementing soft delete with optional relationships,但没有帮助。
- 只需设置节点deleted_at的属性。
- 删除节点标签并更改前缀“_”,如“Student”将变为“_Student”
- 删除关系并更改前缀“_”,如“TEACHES”将变为“_TEACHES”
在neo4j中实现软删除的最佳方式或组合或其他方式是什么?
【问题讨论】:
-
最好的方法 - 听起来像是特定于应用程序的。由于没有直接支持软删除,我认为这确实是一个意见/主观类型的问题。 Neo4j 有一个
where子句,允许您对deleted_at属性进行相同类型的过滤。也没有什么可以阻止您拥有一个表示软删除节点的额外标签,允许您将它们过滤掉。您可能想对您选择的任何方法进行基准测试(例如,对于您建议的方法,它们在负载下的性能如何?)。 -
@DavidMakogon:是的。我想知道任何使用软删除的人。那么他们在做什么呢?我是neo4j的新手。就我而言,将被删除的节点主要具有关系。如果有人有基准,那就太好了。
标签: neo4j soft-delete neo4jphp neo4j-node