Zamanla Değişen Kullanıcı Tercihlerini Veritabanında Modellemek
LinkedIn, Naukri gibi platformlarda kullanıcı tercihleri sabit değildir. Birisinin uzaktan çalışmayı tercih etmesi, zamanla hibrit modele açılabilir; hatta belirli bir iş için taşınmaya razı olabilir. Ama bu değişiklikleri veritabanında nasıl tutarsın?
En basit yol, eski değeri sil, yenisini kaydet, işe yaramaz. İlk tercihini ve değişim geçmişini kaybedersin. Tersine, her değişikliği sonsuza kadar tutarsan, eski, çelişkili veriler birikir ve karar almayı zorlaştırır.
İlk strateji: Mevcut tercihler + değişim günlüğü. Ana tabloda sadece aktif tercihi tut; ayrı bir log tablosunda her değişikliğin tarihi, eski değeri, yeni değeri ve kaynağını (kullanıcı güncellemesi mi, sistem tarafından mı çıkarsanan mı) sakla. Böylece sorgulamak hızlı, ama geçmiş de izlenebilir.
İkinci seçenek: Belge modeli (JSON/BSON). MongoDB gibi veritabanlarında her tercihi bir nesnede tutabilirsin, tercih, zaman damgası, güven seviyesi, kapsam (genel mi, belirli bir iş türü için mi) ve kaynak bir arada. Daha esnek, ama sorgulamak daha karmaşık hale gelebilir.
Üçüncü yaklaşım: Tercihler + meta veriler. Her tercihle birlikte ne zaman değiştiğini, hangi bağlamda geçerli olduğunu (örneğin "senior roller için"), kim tarafından ayarlandığını ve ne kadar güvenilir olduğunu kaydet. Sistem, en yeni ve en yüksek güven skoruna sahip tercihi kullanır, ama eski verileri de analiz edebilir.
Çoğu iş arama platformu, hibrit bir yaklaşım kullanır: aktif tercih hızlı erişim için standart sütunlarda, değişim tarihi ve meta bilgiler ayrı tablolarda. Böylece eşleştirme algoritması hızlı çalışır, ama veri analizi ve anlamsal bağlam da korunur. Seçim, uygulamanın ne kadar sık sorgu yapacağına ve geçmiş veriye ne kadar ihtiyaç duyduğuna bağlı.
0 yorum