2017-06-09 1 views
0

クラス "Video"を宣言し、このクラスの列の1つが "コメント"であるとします。各コメントは文字列であり、comments列は多くの文字列を含む配列です。Parse Array実装は大量のデータを最適化しますか?

確かにそれはうまくいくアーキテクチャですが、ビデオごとに大量のコメントがあるとはっきりしません。

毎回10件のコメントを受け取るクライアントがあるとします:video.comments[:10]。私がコメント配列を取り出したという事実は、残りのコメント数も取り出されたことを意味しますか?またはParseは、取得されたコメントのみを取得するために最適化を行いましたか?

この種の問題の解決方法を教えてください。

私が考えてきた解決策は、必要なコメントのみの配列に応答するサービスをサーバー側に書くことですが、Parseが既にこのようなソリューションを提供している場合は役に立ちませんDB内の配列

答えて

1

これらを配列に貼り付けるのは避けてください。私はそのようなデータの配列を解析して保存することに取り組んできましたが、手早く効率が悪くなります。

ビデオのオブジェクトID、コメント、作成者などの別のテーブルがあることをお勧めします。次に、VideoCommentクラスのクエリequalTo("videoId", videoId);でコメントを取得し、標準あなたが必要とするコメントを得るためにページ区切り(スキップ+リミット)を行います。

+0

しかし、その後も毎回多くのコメントを取得するという問題が発生します。 しかし、おそらく 'query.limit'することができ、' query.notContainedIn'でプレビュー結果に含まれていないより多くのコメントをサーバーに尋ねることができます。 あなたの解決策が私の問題を解決すると思います。 ありがとう、 結論のために更新します:) – Etgar

+1

ページングを処理するにはquery.skipとquery.limitを使用します。私はポインタの配列を行うことを避けるだろう。それは醜くなる。必要に応じて、プレビュー用の最初のxコメントを取得するためにクエリを使用してください。ビデオオブジェクトに配列を格納せずに、必要なビデオオブジェクトと最初のxコメントの配列の両方を返す関数を作成することができます。 –

+0

提案の代わりにリレーションシップを使用することをお勧めしますか? 私はそれを見てもあなたの提案ははるかに簡単に実装できますが、おそらく関係は正しい選択でなければならないでしょうか? – Etgar

関連する問題