2017-01-25 11 views
1

私はNeo4jで新しく、私はいくつかの助けが必要です。neo4jの複数のプロパティに対する制約を作成

私は2つの意味ごとに一度のノードの複数のプロパティで制約を作成しようとしている:私は、すべてのコマンドを使用して、プロパティの上に何度も何度も入力しなくても、などの制約多くのプロパティを指定する必要が

  1. 3つの属性が主キーであり、分離できない場合、SQLのように多くのプロパティをONE-UNITY制約として定義する必要があります。

どうすれば実現できますか?

答えて

2

あなたは実際に2つの質問をしています。

  1. APOC手順apoc.schema.assertは便利なDBは、インデックスと制約の必要なセットを持っていることを保証するために有用です。ドキュメントに示すように、(この手順は、呼び出しで指定されていない既存のインデックスと制約をドロップすること、しかし、注意してください。)

    たとえば、このコール:

    CALL apoc.schema.assert(
        {Track:['title','length']}, 
        {Artist:['name'],Track:['id'],Genre:['name']}); 
    

    は結果を返します。

    ╒════════════╤═══════╤══════╤═══════╕ 
        │label  │key │unique│action │ 
        ╞════════════╪═══════╪══════╪═══════╡ 
        │Track  │title │false │CREATED│ 
        ├────────────┼───────┼──────┼───────┤ 
        │Track  │length │false │CREATED│ 
        ├────────────┼───────┼──────┼───────┤ 
        │Artist  │name │true │CREATED│ 
        ├────────────┼───────┼──────┼───────┤ 
        │Genre  │name │true │CREATED│ 
        ├────────────┼───────┼──────┼───────┤ 
        │Track  │id  │true │CREATED│ 
        └────────────┴───────┴──────┴───────┘ 
    
  2. する方法は、(まだ)存在しないので(また、インデックスまたは制約が同様に返されていた「ドロップ」さのaction値と、行を削除された場合)、このような複数のプロパティに対してインデックスまたは制約を作成する1つの一般的な回避策は、値が使用する値の配列である追加のプロパティを使用することです。値がすべて同じタイプであることを確認し、必要に応じて値を変換する必要があります。残念なことに、これは重複してデータを格納する必要があり、コードが少し複雑になります。

+1

お願いできますか? – Antwnina

+0

私はより多くのポイントと良い評判を集めるようにあなたは私の質問に投票していただけますか? ありがとう – Antwnina

関連する問題