2012-06-13 17 views
7

Yerel bir dizin web sitesi (think yelp/yell.com vb.) Işletiyorum ve sitede listelenen işletmelere analitik veri sağlamanız gerekiyor.Kullanıcıları İzleme - Özel PHP/MySQL Web Sitesi Analizi

aşağıdaki izlemek gerekir:

1) belirli sayfalara (ziyaretçilerinin sayısı yani: Jim'in widget'ları) 65 kez görüntülendi

2) kaç kez bir kullanıcı bir bağlantıyı tıkladığında (yani: Web sitemizi ziyaret etmek için 25 kullanıcı tıkladım.

Her seferinde bir eylem gerçekleştiğinde ilgili numaraya bir tane ekleyerek bunu yapabilirim.

Yapmak istediğim şey, bu tarih aralıklarına, örneğin son 30 güne, son 12 aya, tüm zamanlara bölünmesi.

Bu verileri veritabanında nasıl saklarım? Sadece teoriye ihtiyacım var, kodu değil! Birisi bu bilgiyi saklamanın en iyi yolunu açıklayabilirse, son derece minnettar olurum. Örneğin, tarihler için bir tabloyu, sayfalar/bağlantılar için ve kullanıcı verileri için başka bir tane (ziyaret edilen tıklanan bağlantılar/sayfalar) bir tablo kullanabilir miyim? Şimdiye kadar sahip olduğum tek çözüm, bu eylemlerden biri her defasında çok iyi ölçeklenmeyecek olan DB'ye yeni bir satır eklemektir.

Yardım edebilecek herkese teşekkürler.

+2

neden tekerleği yeniden icat edin? http://piwik.org veya big brother google analytics;) – cypherabe

+0

Çok doğru analitik istemiyorsanız yeni satır sayısını azaltabilirsiniz. Zaman damgasına göre mağaza etkinlikleri yerine (int 10, sanırım), bunları güne göre gruplayabilir/saklayabilirsiniz. Bu arada "kesin" bir çözüm değil. – HBv6

cevap

3

Tekerleği yeniden icat etmeyeceğim ve Piwik gibi zaten mevcut olan bir çözümü kullanamıyorum. Normal web bloglarınızı, istediğiniz tüm bilgileri sağlamak için okuyabilir.

Bazı nedenlerden dolayı hala özel bir çözüme ihtiyacınız varsa, izleme verilerini aralıklarla kaydetmeyeceğim, aksine her bir sayfa araması için (normal web günlüğünüzün sağladığı) tam zamanı ve URL verilerini kullanmam. Kümülatif veriler mantık bölümünüzde anında, örn. SQL görünümünden:

SELECT count(url),url 
FROM calllog 
WHERE calldate > NOW()-30days 
+1

Cevabınız için teşekkürler, Lars. Zaten sitede G-Analytics var, ancak bizde bir hesabı olan her kullanıcının giriş yapıp kendi istatistiklerini görebileceği özel bir sayfa oluşturmam gerekiyor (site çapında istatistikler yerine). Yani her eylemi veritabanında zaman damgasıyla yeni bir satıra kaydederdiniz? Daha sonra sadece son 30 gün, 12 ay vb. verileri göstermek için MySQL kullan ... – drandom

+0

Her bir sayfa görüntülemesini saklıyor ve bağlantıyı bir zaman çizelgesiyle ölçeklenebilir bir çözümle tıklıyor musunuz? Milyonlarca veri satırıyla çok çabuk bitebilirim, değil mi? Zamanınız için tekrar teşekkürler Lars – drandom

+1

Evet, sisteminiz web sunucunuzun webloglarında zaten var, bu da verileri en sevdiğiniz SQL veri tabanına yerleştirmekten daha yavaş. Mantıksal bölüm yalnızca istatistikleri görüntülerken yapılacaktır, bir görünüm yerine bir önbellek tablosu oluşturabilir, bu da her dakika veya daha fazla bir süre sonra yeniden düzenlenir ve artık gerekli olmadıkça (veya birikmiş veriler için daha sonra referans, örneğin 6 ay sonra günlük bilgi için). PiWik'in müşterilere sahip olabilme yeteneğine sahip olduğuna inanıyorum, bu yüzden farklı web sitelerini farklı müşterilerinizden ayırt etmek için kullanabilirsiniz. – Lars