グラフ データベースと Titan は初めてです。Titan を Clojure アプリに埋め込んでいます。アプリが起動すると、BerkeleyDB でサポートされている Titan ストアが作成されます。
3つのことを知りたい/やりたい:
- このデータベースは新しいものですか? その場合は、バージョン 0 のバージョン ノードを作成します。移行手順を実行して、「スキーマ」を最新バージョンにします。
- そうでない場合、バージョン ノードはありますか? そうでない場合は、例外をスローします。
- データベースが既存で、バージョン ノードがある場合は、移行手順を実行して「スキーマ」を最新の状態にします。
タイタンでこれを行うにはどうすればよいですか? これに対するベストプラクティスはありますか?
編集:
OK、さらに検討すると、ハードコードされた頂点 ID を使用するのが最も理にかなっていると思います。TitanTransaction.containsVertex(long vertexid) があります。このアプローチに欠点はありますか? 頂点 ID がどのように割り当てられ、その予約範囲が何であるかがわからないので、危険な匂いがします。私はDBをグラフ化するのは初めてですが、Neo4jではルートノードから参照ノードを作成することをお勧めします。ただし、Titan はスーパーノードになるため、ルート ノードの使用をお勧めしません。IDK...