2017-07-10 1 views
1

Je fais une application mobile semblable à facebook comme un projet d'université. Le problème auquel je suis confronté est de dire si j'ai 25 utilisateurs et 24 utilisateurs posté quelque chose sur le site dont l'utilisateur1 a fait le premier message. Maintenant, dites le 25ème utilisateur se connecte après deux jours. Initialement, je montrais les flux dans l'ordre FIFO. Mais si je continue à utiliser FIFO, le 25ème utilisateur ne sera pas en mesure de voir le dernier post à moins qu'il n'ait subi tous les messages précédents en premier. Même situation dans le LIFO. Si nous augmentons l'application, l'énoncé du problème serait énorme car il y aurait des flux qui ne seront jamais vus. Alors, comment puis-je aborder cela?(facebook like application) Voir le design de l'algorithme de poste

Je pensais à répartir les utilisateurs dans des groupes et à afficher les flux dans les groupes d'abord, puis vers le groupe voisin et ainsi de suite. PS: J'utilise meteorjs pour créer l'application.

J'ai donc réparti les utilisateurs en groupes. J'ai joint une étiquette avec chaque flux indiquant l'utilisateur de quel groupe l'a posté. Maintenant, je trier les flux en fonction de la date et de l'heure à laquelle ils ont été créés. Ensuite, je les regroupe en fonction de leurs groupes d'utilisateurs. Ensuite, je trier les flux en fonction des vues no.of (tri dans le groupe uniquement).

Maintenant, je garde les données triées sous forme de liste. Pour montrer les flux à l'utilisateur, j'essaie d'utiliser des arbres. Dites un utilisateur appartenant au groupe 4 se connecte. Donc, j'utiliserais les données du groupe 4 comme nœud et créerais un arbre binaire. Ensuite, je montrerais tous les flux dans la tête en premier, puis ferais une traversée bfs pour montrer les flux sur les feuilles.

Y at-il autre meilleure méthode pour assurer que chaque alimentation est vu au moins une fois par tout utilisateur

+0

Ce que je pensais, disons que nous avons 100users. Je les distribuerai dans quatre groupes de 25 personnes. Soit les groupes g1, g2, g3, g4. Si un utilisateur appartenant à g1 fait un post, alors tous les utilisateurs de g1 devraient voir le message en premier, puis le message devrait passer à g2, puis à g3 et ainsi de suite. Mais je ne suis pas sûr si c'est une solution réaliste et si la thic pourrait être faite dans des météores. – user3807691

+0

À mon avis, il s'agit plus d'une question de conception plutôt que d'un algorithme. C'est vraiment général et je vous suggère de demander quelque chose de plus précis que cela. –

Répondre

1

Donc ce que je pouvais penser est que vous pouvez diviser les utilisateurs en groupes d'une part. Ensuite, montrez les flux du même groupe. Mais montrez seulement de nouveaux flux ici. Ensuite, montrez les flux des groupes voisins et continuez. Ensuite, montrez les anciens flux de la même manière.