• 19-09-2017, 16:16:02
    #1
    Üyeliği durduruldu
    Bu tarz bir özelliği PHP'de nasıl yapabilirim ?

  • 19-09-2017, 16:49:35
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    basit counter mantığı aslında biraz daha özelliklisi için: 1 adet tablo urunid,ip,ziyaret_zamani,k_adi
    ürün ziyaret edilediğinde tabloya verileri insert et
    alttada zaman kayıt şekline göre son 24 saat olacak şekilde count et ekrana bastır.k_adi kımını da yazdırırsan üye girişi sonrası üyelere son incelediğiniz ürünler diye onları da gösterebilirsin
  • 20-09-2017, 18:38:01
    #3
    Ürün mantığı ile ilerlersek şu şekilde yapılabilir;
    Öncelikle hedefimiz, ürün detay sayfasına ilk defa giren kullanıcının bilgilerini kaydetmektir. Bu kayıt her 24 saat için tek sefere mahsus olarak alınacak ve sonraki görüntülemerde kontrol edilecektir.
    Yani X kullanıcısı Y ürününü ilk defa görüntülüyorsa, bu görüntüleme işlemini referans alan bir kayıt yaratmamız gerekecek.
    Bu kayıt satırı; görüntülenme tarihi, benzersiz ürün numarası ve varsa benzersiz üye numarası gibi değerlerden oluşacaktır.
    Daha sonraki görüntülemerinde ise (son 24 saat için) bu kayıt tablosuna bakılacaktır.
    MySQL kullandığınızı varsayarak aşağıdaki sorgu yardımıyla son 24 saat içersinde ürünün görüntülenme sayısını elde edebilirsiniz.
    SELECT count(`goruntuleme_id`) as goruntuleme_sayisi FROM `urun_goruntulenmeleri` WHERE `goruntulenme_tarihi` >= now() - INTERVAL 1 DAY
    Not: Tablo ve sütun isimlerini örnek olması açısından verdim. goruntulenme_tarihi sütunu date tipinde oluşturulmuştur.
    İyi çalışmalar.
  • 20-09-2017, 21:34:34
    #4
    Selam,
    Çok ziyaretçili sitelerde bu veritabanına güzel yük bindiriyor. Bunun önüne geçebilmek için bunu gerçek zamanlı yapmak yerine 6 saatte bir hesaplatıp ön bellekten vermenizi tavsiye ederim
  • 22-09-2017, 09:00:01
    #5
    Halledilmediyse, örnek dosya göndereyim konu altından.
  • 22-09-2017, 11:24:41
    #6
    Küçük bir modaldan sistem kaynaklarınızı feda etmek istemiyorsanız optimizasyon eğitim gerektiriyor, öteki türlü işlem yok CPU niye böyle telaşları bu işlerin etraflıca düşünülmeden yapılmasının bir sonucudur.

    Bir facebook chat socketleri Erlang ile, filtreleme sistemini Haskell ile yapabiliyor, gözünüzde görünen ise ekranın 20 de birini kaplayan ufak bir pencere. Büyük çaplı projeniz için profesyonel yardıma ihtiyaç varsa PM atabilirsiniz.

    Öteki türlü ufak projeniz için AJAX Long Polling kavramını araştırınız, Client CPU'yu çok tüketen bir yöntem olsada en eski ve en yaygın yöntem. Veritabanı kısmında bir Relational Databasede tutabilirsiniz, Mongo da tutabilirsiniz görece hızlı olur, Mongo gibi veritabanlarının tam randımanlı çalışması için en az 8 Core CPU gerekiyor ki daha optimize compress yöntemleri kullanılabilsin, agregasyon ve bol sayısa index varsa RAM de çok gerekiyor, bu gibi verileri büyük ve düzgün bir projede iseniz REDIS ile de tutabilirsiniz, o zaman gerçekten RAM gerekiyor.

    Ya da MySQL'e "tıklamalar" tablosu açar, 3 saat içinde sitenizin gözünüzün önünde çökmesini izleyebilirsiniz.
  • 22-09-2017, 19:41:21
    #7
    Üyeliği durduruldu
    ForHonor adlı üyeden alıntı: mesajı görüntüle
    Halledilmediyse, örnek dosya göndereyim konu altından.
    Gönderirseniz çok iiy olur hocam.
  • 22-09-2017, 23:08:15
    #8
    Sadece son 24 saatlik görüntülenme sayısını ekrana bastırmak istiyorsanız bunu en kısa ve basit haliyle şu şekilde yapabilirsiniz. Yukarıda arkadaşların bahsettiği gibi ziyaret adında bir tablo olusturun bu tabloya ürün id - ziyaretçi ip - tarih sütunu oluşturun verileri insert edin. Veritabında fazla yer ve sorguyu önlemek için de cronjob özelliğini kullanın 48 saate bir calisacak komut dosyası ayarlayın ziyaretci tablosunda tarihe göre 2 gün önceki verileri temizlesin.
  • 24-09-2017, 22:10:20
    #9
    Böyle bir özellik eklemek istiyorsanız ya Redis gibi bir sistem kullanacaksınız ya da her yeni veriyi queue (kuyruğa) alıp sistemin boş zamanlarını kuyruktakileri veritabanına yazarak kullanacaksınız.