目前在我在Neo4J上运行的Node.Js应用程序中,我使用node-uuid
模块为我的数据库对象提供唯一ID。
使用该模块中的uuid.v1()
函数,我得到类似
81a0b3d0-e4d0-11e3-ac56-73f5c88681be
现在,我的请求很长,有时在一个查询中有数百个节点和边。所以你可以想象它们变得巨大,因为每个节点和边缘都必须有一个唯一的ID。
您知道我是否可以使用较短的ID系统,以便在我的物品数量增加后不会遇到任何问题?我的意思是我知道我只能使用前8个符号(因为有36^8 > 2 Trl
组合,但它们随机生成时的表现如何?随着节点数量的增加,有多少机会随机生成的ID不会落入已存在的ID中吗?
另一个问题 - 如何将当前的ID系统换成新系统?重新生成新的较短ID的最佳方法是什么?
谢谢!
答案 0 :(得分:4)
一种选择是通过此处开发的非托管扩展将UUID生成移动到数据库端:https://github.com/sarmbruster/neo4j-uuid。
这里详细说明了整个想法:http://blog.armbruster-it.de/2013/08/assigning-uuids-to-neo4j-nodes-and-relationships/。