2017-03-25 8 views
0

これはpy2neo 1.6です。 私の質問は、画像ごとに異なるファイル名を持つために、アイデア毎にunique_identifierを生成する方法です(コメント行を参照)。 現時点では、私たちはpythonのuuidを使用しています。 ノードがインデックスに追加されたときに、各ノードに個別の番号を関連付けることができるのNeo4jで、いくつかのユーティリティがある場合、私は疑問に思う、と私たちは私たちのunique_identifierとして、この番号を使用することができNeo4j:ノードの数値インデックスを使用

def create_idea_node(idea_text): 
    #basepath = 'http://www.example.com/ideas/img/' 
    #filename= str(unique_identifier)+'.png' 
    #idea_image_url = basepath + filename 
    newidea_node, = getGraph().create({"idea": idea_text, "idea_image_url": idea_image_url}) 
    _getIdeasIndex().add("idea", idea_text, new_idea_node) 
    return OK 

def _getIdeasIndex(): 
    return getGraph().get_or_create_index(neo4j.Node, "Ideas") 

答えて

1

のNeo4jノードはIDを持っていますそれらは整数ですが、ノードが破棄されて再作成された場合、その整数は再利用される可能性があります。 id(n)はノードnのIDです。 UUIDに何か問題がありますか?整数ソリューションは、コンピューティングプロジェクトを複数のサーバーにまたがってマルチスレッド化または分散するときに問題が発生する可能性があります。したがって、UUIDソリューションに何か問題がない限り、私はそれに固執します。

UUIDは、読みにくく、おそらく記憶容量を少し必要とするにもかかわらず、整数で一意性を強制しようとするよりも多くの利点があります(一般的に)。 WikipediaにUUIDの性質をお読みください。

整数の一意性は、(フォールトトレランスとパフォーマンス上の理由から)独立したシステム全体で拡大縮小しようとすると、多くの落とし穴があります。あなたがUUIDを使って作業を始めることができれば、長い間頭痛を軽減しながら、あなたのソリューションで長期的に成長することができます。

FWIWの場合、いつかUUIDをPostgreSQLに格納することになる場合は、必ず 'uuid'データ型を利用してください。これらの値を単純な整数と同じくらい効率的に格納および索引付けします。 (違いを伝えるのは難しいでしょう)

関連する問題