2014-01-21 100 views
2

在我的系统中,我有一个带有“id”列的关系数据库表,我代表了Neo4J中的一些相同数据。在Neo4J中使用“id”属性是一个好习惯吗?

我的第一种方法是在Neo中创建一个与id列相关的“id”属性。

这有什么理由不是一个好习惯吗?它在技术上或概念上与Neo生成的节点ID冲突?

回答

4

如果ids服务于唯一区分将生成的节点的目的,那么是它的好处是有一个。

但请记住,如果您的图表将来会增长,并且说情况到达时需要将另一个数据库表建模为图形,并且有可能说新数据库表中的某些ID与旧数据库表冲突那么在这种情况下,你将会遇到维护节点唯一性的麻烦。

建议不要使用neo4j生成的节点ID,因为它们在节点被删除的情况下容易被重复使用。

如果您只是想将数据库表建模成图数据库,并且不想将图数据与您的数据库表关联起来,则可以使用UUID.randomUUID()。toString()来生成随机唯一的UUID(重复UUID的概率非常小)。

+0

关于来自不同表格的ID:我使用neo4j 2与标签,所以我使用不同的标签每张表 –

+0

很酷,这就好!然后保持ID数据库表ID不会导致任何问题,因为标签和ID组合将始终不同! –

相关问题