2
A
回答
3
你不这样做,你可能不应该。 Neo4j已经提供了一个内部的id
字段,它是一个自动递增的整数。它不是节点的属性,而是通过id()
功能来访问,就像这样:
MATCH (n:Person)
RETURN id(n);
所以每当您创建的任何节点,这已自动免费通过发生Neo4j的,而不是由做py2neo。
如果你需要一个不同类型的代码标识符,我会推荐一些全球唯一的东西,比如一个UUID,这在python中很容易实现,而不是一个自动递增整数。
将自动递增数字作为ID的麻烦在于,由于它们对它们有一个模式(自动递增),所以人们依赖于标识符的值,或者依赖于ID的预期方式分配。这在数据库中几乎总是一个坏主意。标识符的唯一目的是独一无二的。这并不意味着什么,在某些情况下甚至不保证不会改变。避免将对任何特定值或分配方案的依赖嵌入代码中。
这就是为什么我喜欢UUID,是因为他们的分配方案本质上是任意的,他们显然不代表什么 - 所以他们不会诱使设计师去做任何聪明的事情。 :)
相关问题
- 1. 使用py2neo将多个值属性添加到索引 - Neo4j
- 2. Neo4j中的自动递增属性
- 3. 自动增加xml属性
- 4. 用py2neo导入neo4j
- 5. Neo4j的Py2neo Api
- 6. neo4j自动增加多个查询
- 7. 在Neo4j中自动递增
- 8. neo4j使用列表属性
- 9. 在SQLAlchemy中使用自定义逻辑自动递增属性
- 10. Py2neo与Neo4j的关系
- 11. Neo4j Python py2neo授权错误
- 12. 使用weka增加属性的维度?
- 13. MySQL的自动增量绑定属性
- 14. 使用Cypher加速py2neo
- 15. 使用rails迁移创建丢失的自动增量属性
- 16. 为IEnumerable集合动态增加属性?
- 17. 当使用py2neo时,Java内存不断增加
- 18. Neo4j Cypher - 添加属性与加载CSV
- 19. 浏览器会自动增加属性值来标记
- 20. Rails fixture - 自动增加一个ID属性?
- 21. 在Strongloop环回模式中自动增加属性值
- 22. RavenDB:添加自动增量到ID以外的其他属性
- 23. 单选按钮上的自动增加的名称属性
- 24. 脚本添加和删除列自动增量属性
- 25. Servicestack:处理索引,自动增加等没有属性?
- 26. 如何使用neo4j获得自动增量
- 27. neo4j使用“neo4j -import”工具时,内存一直在增加
- 28. 使用Neo4j Java API属性容器
- 29. 使用py2neo事务更改节点属性
- 30. 使用StructureMap自动启动属性
我可以得到一些解释:我在网上其他地方看过,我们不应该依赖Neo4j的内部ID它保留为节点,而应该使用我们自己的ID,但是你在这里提到,我们不应该使用我们自己的ID。 谢谢! – Lamoni
@Lamoni这个答案并不是说你不应该使用你自己的ID。使用自己的ID是一个好主意。在ID中嵌入含义是一个坏主意。 (因此UUID,没有意义,它们都是唯一的) – FrobberOfBits
ahh谢谢你的澄清,我的错误误解。谢谢! – Lamoni