Neo4j.rb: 自增关系属性?
Neo4j.rb: autoincrement relationship attribute?
是否可以自动增加 ActiveRel 属性?与 ActiveRecord 相比,ActiveNode/ActiveRel 似乎不支持开箱即用的自动增量属性。
我考虑过使用 before_save
手动生成一个 id。但是,似乎无法 order relationships(找到以前的最高 ID)。
如何实现自动递增 ID? (我知道 Neo4j.rb 生成 UUID 但此应用程序需要单独的增量序列号)
有来自 Neo4j 的自动递增 ID,它独立于节点和关系从 0 开始。它可以(我认为)在短期内(即几秒钟)依赖于引用节点,但从长远来看,它们可能会被 Neo4j 清理和移动以提高性能。
如果您正在考虑将 ID 放在关系上,那么您正在做的事情可能不是 Neo4j 的正确建模方法(尽管没有细节我不能肯定地说)。关系本身不能直接查询,而只能通过首先查找节点来访问。我认为拥有一个递增的 ID 是有意义的,它对于与节点相关的所有关系都是唯一的,但不是全局的。这也是 Neo4j.rb 不为关系生成 UUID 的原因。您可能需要考虑将关系表示为中间节点。
如果您想在 ActiveNode
模型上实现递增 ID,before_save
应该是一个很好的方法。
是否可以自动增加 ActiveRel 属性?与 ActiveRecord 相比,ActiveNode/ActiveRel 似乎不支持开箱即用的自动增量属性。
我考虑过使用 before_save
手动生成一个 id。但是,似乎无法 order relationships(找到以前的最高 ID)。
如何实现自动递增 ID? (我知道 Neo4j.rb 生成 UUID 但此应用程序需要单独的增量序列号)
有来自 Neo4j 的自动递增 ID,它独立于节点和关系从 0 开始。它可以(我认为)在短期内(即几秒钟)依赖于引用节点,但从长远来看,它们可能会被 Neo4j 清理和移动以提高性能。
如果您正在考虑将 ID 放在关系上,那么您正在做的事情可能不是 Neo4j 的正确建模方法(尽管没有细节我不能肯定地说)。关系本身不能直接查询,而只能通过首先查找节点来访问。我认为拥有一个递增的 ID 是有意义的,它对于与节点相关的所有关系都是唯一的,但不是全局的。这也是 Neo4j.rb 不为关系生成 UUID 的原因。您可能需要考虑将关系表示为中间节点。
如果您想在 ActiveNode
模型上实现递增 ID,before_save
应该是一个很好的方法。