如何解决neo4j ID的稳定性如何?
我知道,从长期来看,您不应该将ID用作节点的标识符,因为删除节点时,可能会将ID重新分配给新节点(ref)。
在删除节点和关系时,Neo4j重用其内部ID。这意味着使用并依赖于内部Neo4j id的应用程序很脆弱或有犯错误的风险。因此,建议使用应用程序生成的ID。
如果我正确地理解了这一点,那么当您不能保证是否删除了某个节点/关系时,仅通过其ID查找它会带来风险。
如果通过我的应用程序设计,我可以保证自查询时间ID以来没有删除具有特定ID的节点,那么可以使用这些ID吗?还是我可能会遇到一些问题?
我的用例是我希望执行一个跨多个事务的复杂操作。而且我需要知道在该操作的第一次事务处理期间为节点获取的ID是否是在该操作的最后一次事务处理期间标识该节点的有效方法。
解决方法
只要您确定不会删除具有给定ID的节点/关系,就可以无限期使用其本机ID。
但是,随着时间的流逝,您可能想添加对需要删除该实体的其他用例的支持。一旦发生这种情况,您现有的查询就可能开始产生间歇性错误(可能并不明显)。
因此,通常还是建议使用您自己的标识属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。