2011-05-19 19 views
6

Bu videoyu görüntüleyen kullanıcılar 'Amazon'da görüntülenen kişiler', amazon, övgüler ve diğer çevrimiçi sitelerde gördüğünüz bir liste oluşturmayı düşünüyorum. Şu anda 'product_id', 'last_viewed_product_id', 'hit'leri ile yeni bir tablo oluşturmayı düşünüyorum, bir kullanıcı product_id = 100'den product_id = 101 için bir sayfadan çıktığında, bu tabloyu product_id = ile oluşturacak/güncelleyecektir. 101, last_viewed_product_id = 100 ve 'hit' değerini artırın. Daha iyi optimize edilmiş ve daha az hesaplama gerektiren daha iyi yöntemler var mı?'Bunu görüntüleyen kullanıcılar aynı zamanda görüntülendi' listesi oluşturma

cevap

4

Best Biliyorum, Amazon'un işleri daha az hesaplama yapmak için kullandığı "numaralar" a) a) ingiltere istatistik/ortalamalarını kullanmak ve b) kısmi toplamları hesaplamaktır. İkincisi, her şeyi saymanıza gerek kalmaz (bunun yerine önceden hesaplanmış toplamları toplayabilirsiniz). Birincisi, çıkardığınız malzemenin ilgili materyalini enjekte etmenize izin verir.

4

O doğru yolda gidiyoruz gibi görünüyor - birkaç öneri - yoğun hesaplama gerektiren İçin

- muhtemelen sonuçlarınızı önbelleğe almak istiyorum, sadece bir üst 'x' sayısını vereceğiz böylece günde bir kez veya bu etkiyle benzer şekilde güncellenir. Bu durumda gerçek zamanlı önemli görünmemektedir.

Sitenizde ne tür ürünlere sahip olduğunuzdan emin değilim, ancak çeşitlilik önemliyse, yalnızca ilgili bilgileri içeren öğeleri göstermek isteyebilirsiniz (böylece Star Wars yalnızca Star Wars ile ilgili olabilir öğeler patlıyor).

Ürünleriniz veya anahtar kelimeleriniz için "etiketleriniz" varsa, bununla bir ilişki kurmak isteyebilirsiniz.

Ayrıca, bir ürüne nasıl geldiklerine dair bir ağırlık da oluşturmak isteyebilirsiniz. Sağladığınız listeye tıklayarak ürüne ulaşmışlarsa, o zaman bu tür öğeler başkaları tarafından gösterilmeye devam eder ve diğer ürünlere gösterilme şansı vermez, bu yüzden düşük bir ağırlık verin. Bunun yerine daha ağır öğeler açılır.

2

Tüm ziyaretçileriniz için kullanıcı kimliğiniz varsa (kayıtsız kullanıcılar için geçici olanlar oluşturabilirsiniz), kullanıcıların ziyaret ettiği tüm ürünleri saklayan user_id ve product_id sütunları olan bir geçmiş tablosu oluşturabilirsiniz. Bir kullanıcı bir ürünü açtığında, bu ürünü en son görüntüleyen user_ids'leri arayan ve ardından kullanıcıların açtığı ürünlere katılan bir sorgulama yapın. Daha sonra, bu user_ids tarafından en çok açılmış olan ürünleri sıralayın.

Bu, katılımın herhangi bir SQL sunucusunu yavaşlatması için önbelleğe aldığınızdan emin olun.

İlgili konular