Bir kullanıcı bir makale hit her Sitem veritabanına tıklama kaydeder. Bu tablo, otomatik olarak her 3 gün dışarı temizlenir. Biz 3 günlük süre içinde en çok izlenen sayfaları çalışmak için verileri kullanın.
Ben de belirlemek için, örneğin pazarlama amaçları için, bu verileri kullanmak istiyorum hangi kullanıcıların hangi gibi site bölümleri.
Ben şu yapar php bir script yazdık:
son 3 gün içinde bir yazı izlendi herhangi açmış üyesinin kullanıcı kimlikleri kapmak
her kullanıcı için, onlar her bölümde makaleler izlendi kaç kere saymak için sorgu, Örneğin, Bobby Food & 10 sayfa izlendi İçki ve Sporda 6 sayfa. Ben birlikte bu adımı ve bir öncekini birleştirerek çalıştı ama toplamları için garip sonuçlar var.
Bu bana bu formda güzel bir dizi verir:
[Bobby Jones] => Array ( [Film] => 10 [Home Page] => 1 [Food & Drink] => 2 [Health & Beauty] => 1 [Gifts & Gadgets] => 3 )
Ben bu verileri istediğiniz sonunda yukarıdaki dizideki verileri kaydeden bir tablo var, ve benim sorguları çalıştırdığınızda, sonra da artırır.
Ne yazık ki, bu yükü bir sürü ekler. Ben yukarıdaki gibi benim diziler var, ben kullanıcı ve kategorinin bu arada zaten veritabanında varsa kontrol etmek için başka bir sorgu çalıştırmak zorunda, ve eğer, ben o günkü değerlerle bunu artırmak zorunda. Bobby geçen hafta 10 Film görüntülenen sayfaları, ve bu hafta 6 izlendi örneğin eğer, ben tablo UPDATE gerekir. Daha önce Gıda sayfasını inceledi asla, ben yerine INSERT gerekiyor.
Bu sorgu son 3 gün içinde site ile etkileşim ettik 400 ya da öylesine kullanıcıları dönüyor. Bu, her bir kullanıcı için ben zaten onlar bunu göz veya ettik bağlı olarak daha önce kategorisini ve / ekleme güncellemek için başka bir sorgu, gezindiğiniz eğer onların tarama toplamlar, 1 sorgu görmek için almak için 1 sorgu yapmak zorunda olduğu anlamına gelir değil. Bunun ne kadar verimsiz görebilirsiniz.
Herkes bunu daha iyi bir yol önerebilirsiniz? Benim nihai amacım kullanıcılar benim kategorileri göz nasıl bana sık sık gösteren bir tablo ile sonuna kadar, bu yüzden "bana gıda gibi tüm kullanıcılara göstermek İçecek" vb diyebiliriz
Thanks, Matt