Neo4jノード/リレーションシップIDは動的な性質を持ち、ドキュメンテーションやオンラインでさまざまな記事を読んだ後にわかることから、再利用することができます。Neo4j OGMはノード/リレーションシップに対してどのように確実に機能しますか?
したがって、たとえば、たとえば、私が原因私に、別の操作O2は(x)
を削除し、O1がブロックされている間、例えば、((y)
を作成することが100のIDを持っている(x)
上で動作動作O1を、持っています/ O操作)、偶然にも(y)
はノードIDが100になることがあります。O1が実行を再開し、(x)
と推定されるノードを修正しようとしましたが(実際は(y)
ですが、O1は同じノードID)、そのノードのすべての種類の不良データがあります。
特定の数のOGM(すべてがPHPで書かれていますが、他の言語でも同じことがOGMに適用されると思われますが)を扱っていると、私はすべてがIDに頼っていることがわかります。上記のように、しばしば危険な結果をもたらす。
Neo4j OGMはどのようにこれらのケースを処理しますか?または、上記のケースが懸念の理由とならないように(まったく同じ確率、たとえば2つのUUIDが衝突して)「まれ」であるか?
UUIDなしで作成されたノードはどのように取得しますか? (たとえば、uuidプロパティなしでWebインターフェイスから作成されたもの) – user2064000
'Model.find_by_neo_id'を行うことはできますが、一般的にそこにはUUIDがあることを確認したいと思っています。私たちは、UUIDを持たないノードを見つけ出して追加する移行を行っています。また、Rubyの 'SecureRandom.uuid'はRFC 4122に基づいていますので、そこにノードを作成する場合は他の言語で実装するべきです –
(また' Model.find_by(neo_id:123) '、' Model.find_by(other_property: –