neo4j ID的稳定性如何?
我知道你不应该长期依赖ID作为节点的标识符,因为当你删除节点时,ID可能会被重新分配给新节点() 删除节点和关系时,Neo4j重用其内部ID。这意味着使用和依赖内部Neo4j ID的应用程序很脆弱,或者有出错的风险。因此,建议使用应用程序生成的ID 如果我理解正确,那么只有在无法保证某个节点/关系是否已被删除时,才能通过其id查找该节点/关系,这将使您面临风险 如果通过我的应用程序设计,我可以保证具有特定ID的节点在查询ID后没有被删除,我可以使用ID吗?还是我可能会遇到一些问题neo4j ID的稳定性如何?,neo4j,Neo4j,我知道你不应该长期依赖ID作为节点的标识符,因为当你删除节点时,ID可能会被重新分配给新节点() 删除节点和关系时,Neo4j重用其内部ID。这意味着使用和依赖内部Neo4j ID的应用程序很脆弱,或者有出错的风险。因此,建议使用应用程序生成的ID 如果我理解正确,那么只有在无法保证某个节点/关系是否已被删除时,才能通过其id查找该节点/关系,这将使您面临风险 如果通过我的应用程序设计,我可以保证具有特定ID的节点在查询ID后没有被删除,我可以使用ID吗?还是我可能会遇到一些问题 我的用例是希望
我的用例是希望执行跨越多个事务的复杂操作。我需要知道我在该操作的第一个事务中为某个节点获取的ID是否是在该操作的最后一个事务中识别该节点的有效方法。只要您确定不会删除具有给定ID的节点/关系,您就可以无限期地使用其本机ID 然而,随着时间的推移,您可能会希望添加对需要删除该实体的其他用例的支持。一旦发生这种情况,您现有的查询可能会开始产生间歇性错误(这可能并不明显) 因此,通常仍然建议使用您自己的标识属性