Tinder benzeri eşleştirme algoritması

MBerat

Hectopat
Katılım
26 Şubat 2017
Mesajlar
96
Merhaba arkadaşlar,
Bir mobil uygulama geliştiriyorum ve bu uygulamada aşağı yukarı Tinder uygulaması gibi kullanıcıları birbirleriyle eşleştirecek. Ama matchmaking sisteminde değil de Tinder'dan da bildiğimiz gibi kullanıcı olarak ben kimi beğenirsem eğer o da beğenirse eşleşmek tarzında. Bu algoritmayı nedense internette hiçbir yerde bulamadım. Şimdiden yardımlarınız için teşekkürler...
 
Bunu anlamak için çok az veritabanı bilgisine sahip olmak gerekiyor.

Her kullanıcının bilgilerinin veritabanında User tablosunda saklandığını düşünelim. User tablosunun elbette bir UserId alanı olmak zorunda. Her User, birden fazla kişiyi beğenebileceği için bir de beğendiği kişileri tutacak “Beğenilenler” tablosu düşünelim. Bu tablonun içerisinde de beğenen ve beğenilen kişilerin UserId’si yer alsın.

Örnek olarak senin Id numaran 15 olsun. Sen 13 numaralı birini beğendiğinde bu veritabanına yazılır.

BeğenenUserIdBeğenilenUserId
1513


Daha sonra Id numarası 13 olan kullanıcı seni beğendiğinde eşleşmiş olursunuz.

BeğenenUserIdBeğenilenUserId
1315
1513

Bu yapıyı kurduktan sonra iş sadece Backend tarafında gerekli sorguları yazmakta. Çok da zor bir işlem değil aslında.
 
Beğenilen kişi yerine özellikleri belli bir şablona göre düzenleyebilirsin. Örneğin kişinin beğendiği kişiler hep kumral saç ve 180cm boya sahiptir. Bu durumda sen de veritabanından kumral saçlı ve boyu 180 civarlarında olan kişileri alırsın. En basit yolu budur yani.
 
A nin begendikleri X;
B nin begendikleri Y. ( A,B insan; X-Y insan listesi )
X te B; Y de A varsa match oldular.
Cok basit aslinda, 2 tane collection contains check yapacaksin.
 

Geri
Yukarı