3

注文したドキュメントを CouchDB に保存する最良の方法は何ですか?

100 個の記事があり、好きな順序で目に見えるように並べて並べたい、または 10,000 個の画像があり、日付/カテゴリ/など以外の特定の順序で表示したいとします。これは、親 (「ページ」または「アルバム」レベル) または子 (画像/記事) レベルで保存するのが最適ですか?

次のようにする必要があります。


{
    _id: myPage;
    articles: [myArticle14, myArticle5, myArticle2, myArticle20...];
}
またはこれ:

{
    _id: myArticle14;
    position: 1;
}

...実際の Article ドキュメントの はどこarticles: [myArticle14, myArticle5, myArticle2, myArticle20...];にありますか。_id

それぞれの利点/欠点は何ですか? また、アプリが成長するにつれて、どちらが使いやすいと思いますか?

4

2 に答える 2

1

重要なデータが含まれていると仮定して、記事ごとに 1 つのドキュメントを使用します。1 つの大きな「コンテナー」ドキュメントは良い考えではありません。記事データの小さな更新ごとに多くの改訂を無駄にすることになります。また、競合の解決も困難になります。

于 2009-12-11T02:49:52.853 に答える
1

最初の解決策。

利点: 1 つの位置に 2 つの記事を持つことはできません。

短所:記事を順番に取得するには、DB からすべての記事を取得してから、必要な記事のみをフィルター処理するか、ページに表示する記事と同じ数のクエリを呼び出す必要があります。

2 番目の解決策

利点: 1 回のクエリで 1 ページのすべてのドキュメントを取得できます。キーがページ位置で構成されるビューを作成し、 startKeyendkeyパラメーターを使用して必要な記事のみを取得するだけです。

短所:ミスを犯して、同じ位置の記事が増える可能性があります。

私は2番目の解決策を選択します。

于 2009-12-14T11:17:02.537 に答える