6

リレーショナルデータベースとドキュメントデータベースでタグ付けシステムを設定するためのアドバイスをいくつか見つけましたが、グラフ/マルチモデル データベースについては何も見つかりませんでした。

ArangoDB でドキュメント (「記事」と呼びましょう) のタグ付けシステムをセットアップしようとしています。Arango のようなマルチモデル (グラフ + ドキュメント) データベースにタグを格納するには、次の 2 つの明白な方法が考えられます。

  • 各記事ドキュメント内の配列として (ドキュメント データベース スタイル)
  • 各タグが一意のドキュメントであり、タグ ドキュメントを記事ドキュメントに接続するエッジを持つ個別のドキュメント クラスとして (リレーショナル データベース スタイルに近いもの)

実際、これらはこれを行うための2つの主な方法ですか? どちらも理想的ではないようです。例えば:

  • 各記事ドキュメント内にタグを保存している場合、タグにインデックスを付けることができ、おそらく ArangoDB が使用するスペースを最適化しています。ただし、グラフ機能を使用してタグをリンクまたはトラバースすることはできません (または、個別に行う必要があります)。
  • タグを個別のタグ ドキュメントとして保存している場合、ドキュメントのタグのリストを取得したいだけの場合、余分なオーバーヘッド (余分なクエリ) のように思えます。

これは明確な質問につながります: 後者のオプションに関して、接続された「タグ」ドキュメントを記事ドキュメント内に自動的に表示させる簡単な方法はありますか? tag.nameたとえば、接続されたタグ ドキュメントのプロパティを何らかの方法で「ミラーリング」した配列プロパティがありますか?

一般的なアドバイスも大歓迎です。

4

3 に答える 3

1

接続されたドキュメントがドキュメント内に自動的に表示されるかどうかについての明確な質問に対する答えは、残念ながらいいえです。個別のタグ ドキュメントを使用して ArangoDB グラフを作成しましたが、タグは関連するアイテムではなくプロパティであるという基準に従っているように見えるため、それを個々のアイテムのプロパティに変えることを真剣に考えています。

マイク・ウィリアムソンは、これについて素晴らしいブログ投稿を行っています: https://mikewilliamson.wordpress.com/2015/07/16/data-modeling-with-arangodb/

彼は、1 つの頂点から多数のエッジを取得するのは遅く、人気のあるタグ頂点から多数のエッジを取得する場合は遅くなると主張しています。

于 2016-03-08T13:11:53.933 に答える