1

是否可以自动增加 ActiveRel 属性?与 ActiveRecord 相比,ActiveNode/ActiveRel 似乎不支持开箱即用的自动增量属性。

我考虑使用before_save手动生成一个ID。但是,似乎无法对关系进行排序(以查找先前最高的 id)。

如何实现自动递增 ID?(我知道 Neo4j.rb 会生成 UUID,但这个应用程序需要一个单独的增量序列号)

4

1 回答 1

2

Neo4j 有一个自动递增的 ID,它独立于节点和关系从 0 开始。它可以(我认为)在短期(即秒)内引用节点,但不能长期依赖,因为它们可能会被 Neo4j 清理和移动以提高性能。

如果您正在考虑将 ID 放在关系上,那么您正在做的事情可能不是 Neo4j 的正确建模方法(尽管没有细节我不能肯定地说)。关系本身不能直接查询,只能通过第一个查找节点访问。我认为有一个递增的 ID 是有意义的,它对于所有与节点相关的关系都是唯一的,但不是全局的。这也是 Neo4j.rb 不为关系生成 UUID 的原因。您可能需要考虑将关系表示为中间节点。

如果你想在一个ActiveNode模型上实现一个递增的 ID,before_save应该是一个很好的方法。

于 2015-05-10T22:20:45.280 回答