2017-07-10 7 views
1

私は大学のプロジェクトとしてFacebookのようなモバイルアプリを作っています。私が直面している問題は、25人のユーザーと24人のユーザーが、user1が最初の投稿を行ったサイトに何かを投稿したとします。今すぐ25日目のユーザーが2日後にログインするとします。最初はフィードをFIFO順に表示していました。しかし、私がFIFOを使用し続けると、25番目のユーザーは、前のすべての投稿を最初に受けなければ、最後の投稿を見ることができません。 LIFOと同じ状況。アプリをスケールアップすると、決して見られないフィードが存在するため、問題のステートメントは膨大になります。だから私はこれにどのように取り組んでいますか?(facebook like app)ポストアルゴリズムデザインを表示

私はユーザーをグループに分けて、グループ内のフィードを最初に表示してから、近隣のグループに表示するなどと考えました。

PS:私はアプリを構築するためにメトリを使用しています。

私はグループにユーザーを配布しました。私はどのグループからのユーザーがそれを投稿したかを示すすべてのフィードにタグを付けました。 これで、フィードが作成された日時に基づいてフィードがソートされます。それから私は彼らのユーザーグループに従ってそれらをグループ化します。それから私はフィードの並べ替えをno.ofビュー(グループ内でのみソート)に従ってソートします。

ここではソートされたデータをリストとして保持します。ユーザーにフィードを表示するために、私はツリーを使用しようとしています。グループ4に属するユーザーがログインしているとします。したがって、グループ4のデータをノードとして使用し、バイナリツリーを作成します。それから私は頭の中のすべてのフィードを最初に表示し、次に葉にフィードを表示するためにbfsのトラバーサルを行います。

すべてのフィードが

+0

私が考えたことは、100人のユーザーがいると言いました。私は25の4つのグループに分けて配布します。グループをg1、g2、g3、g4とする。 g1に属するユーザーが投稿を行うと、g1のすべてのユーザーが最初に投稿を表示し、投稿がg2に移動してからg3に移動する必要があります。しかし、私はこれが現実的な解決策であるかどうか、そしてメテオでは可能かどうかはわかりません。 – user3807691

+0

私の意見では、これはアルゴリズムではなく設計上の問題です。それは本当に一般的なことなので、もっと具体的なことを尋ねることをお勧めします。 –

答えて

1

だから、私は考えることができことは、あなたが最初にユーザーをグループに分けることができるということですすべてのユーザーが少なくとも一度見られていることを確認するために、他のより良い方法があります。次に、同じグループのフィードを表示します。しかしここには新しいフィードしか表示されません。次に、近隣のグループからのフィードを表示して移動します。その後、同じ方法で古いフィードを表示します。

関連する問題