ソファベースのプロに質問があります。ドキュメントのサブセット (ビュー内のドキュメントなど) を他のバケットと同期することは可能ですか?
他のバケット ドキュメントが常に「マスター」バケットの直接のサブセットになるようにするには? もしそうなら、それはパフォーマンスの面で非常に高価ではありませんか? または、couchbase には、ドキュメントをコピーするのではなく、ドキュメントへのディープリンクのみを作成する機能がありますか?
または、ビューにビューを書き込むことは可能ですか?
前もって感謝します!
- - 編集 - -
ドキュメント S1 と S2 の 2 つのセット (バケット) が必要だとします。S2 は S1 のサブセットです。各セットには同じビュー V1、V2、および V3 が含まれています。これは、同じロジック/インターフェイスでそれらのいずれかをクエリできるようにするためです。私の場合、セット S2 はユーザー/会社/ストアなどごとに構築されます。本番環境では、1000 程度のサブセット S2 が必要です。抽象化するために、それらを S2a S2b および S2c と呼びましょう。
サブセットに含まれるドキュメントの選択は、フィルタリング インスタンス (ビューなど) によって行われます。S1 を S2 にフィルタリングするためのこれらのフィルタリング インスタンスを F1 と呼び、したがって F1a、F1b、および F1c と呼びます。
したがって、couchbase に関する私の実際の知識では、次のデザイン/ビュー アーキテクチャが得られます。V1、V2、および V3 を表示するための 3 つの「ベース」ビューがあり、S2a、S2b、および S2c を実現するには、デザイン ビュー S2aV1 を作成する必要があります。 、S2aV2、S2aV3、S2bV1、S2bV2 など (9 ビュー)。
「キーを賢く選択すれば、サブビューを避けることができます」と言う人もいますが、私の意見では、次の状況のため、これはそれほど簡単ではありません。 (私の実際の観点では)k / vリストのクエリを効率的に処理できません。
これは、次の考えと私が最初に尋ねた質問につながります。任意のサブセット (フィルターによって定義された) で同じビューを使用する場合、複雑なフィルター処理を処理するのに役立つエンティティを構築することはできないでしょうか? たとえば、ビュー出力の生成中に実行時に呼び出される関数は? これは、/design/view?filter=F1 などのようになります。
または、この問題を解決するための他のアイデアはありますか? または、頻繁に変更されるフィルターをより処理できる SQL を使用する必要がありますか?