• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

System łączenia użytkowników podobny do tindera

0 głosów
279 wizyt
pytanie zadane 3 stycznia 2021 w JavaScript przez Linwa Nowicjusz (160 p.)

Cześć,

Chcę zrobić system, który będzie dobierał użytkowników na podstawie podobnych zainteresowań lub umiejętności. Wpadłem na pewne rozwiązanie ale nie wydaje mi się zbyt wydajne.

  1. Użytkownik wysyła zapytanie do serwera
  2. Serwer pobiera z mongodb listę 100 użytkowników o podobnych zainteresowaniach
  3. Funkcja segreguje użytkowników od najbardziej dopasowanego do najmniej
  4. Użytkownik dostaje listę w której może polubić lub nie innego użytkownika

I teraz pojawiają się pewne problemy bo kiedy użytkownik polubi innego to w bazie danych powstaje match z tym użytkownikiem ale kiedy go nie polubi to czy powinna powstać blacklista? Zacznie to mocno komplikować zapytanie do bazy danych bo najpierw trzeba pobrać listę matchy następnie blackliste i przefiltrować bazę od użytkowników z którymi miało się wcześniej interakcję. Ma ktoś może inny pomysł albo może doradzić uproszczenie tego procesu?

1 odpowiedź

0 głosów
odpowiedź 3 stycznia 2021 przez Linwa Nowicjusz (160 p.)
Dodam jeszcze, że blacklista jak i matche są po to aby jakiś użytkownik nie wyświetlał się dwukrotnie

Podobne pytania

0 głosów
0 odpowiedzi 182 wizyt
pytanie zadane 3 września 2019 w JavaScript przez Louel Nowicjusz (140 p.)
+2 głosów
2 odpowiedzi 385 wizyt
0 głosów
2 odpowiedzi 364 wizyt
pytanie zadane 12 lipca 2021 w JavaScript przez KopfSzmercen Bywalec (2,870 p.)

93,736 zapytań

142,672 odpowiedzi

323,294 komentarzy

63,298 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...