Forumları Nasıl okunmayan konular gösterebilirim?

5 Cevap php

Ben PHP / MySQL kodlu kullanıcı tartışma forumları, ben büyük isim forumlar konular genellikle pek herhangi bir kaynak kullanmadan parçacığı yanında bir simge görüntüyü değiştirerek, onlara yeni mesaj var hangi göstermek yapabilirsiniz bilmek isteyen am var ?

5 Cevap

simplest yolu onlar bizi ziyarete gel zaman birisi o zamandan beri güncellendi şeyi açıkça "yeni", oturum açmış olan son kez izlemek için.

Okundu olarak çıkıyor etkili tüm öğeleri işaretler beri bu olsa bazı sorunları var.

Bunu yapmak için düşünebildiğim tek diğer yolu tüm konuları ve her kullanıcının gördü bu iş parçacığı Son mesajı içeren bir tablo korumak olacaktır.

user_id   thread_id   post_id
      1           5        15
      1           6        19

Bu bilgi ile, 15 daha büyük bir kimliği vardır iplik # 5 post varsa, o zaman orada okunmamış mesaj olduğunu biliyorum. Sadece son yazının post_id bu tabloyu güncelle on that page. Orada yeni mesaj 3 sayfa, ve kullanıcı sadece ilk görüntülerse, bu demektir hala okunmamış mesaj var bileceksiniz.

Nickf kullanıcı aslında ziyaret etti konuları izlenir dışında yukarıda söylediğim gibi. böylece kullanıcı ziyaret etmemiştir şey o ziyaretçi için yeni kabul edilir. ince taneli kontrolü için kayıtlı kullanıcı önce oluşturulan herhangi konuları göz ardı edilir ve muhtemelen bir süre içinde ziyaret hiçbir konuları göz ardı edilir. Bu onlar için yeni bir konu olma gibi her edilmemiş konu önleyecektir.

Tabii ki bir kediyi ve forum yaratıcıları yukarıdaki uyacak şekilde değiştirilebilir istediğini bağlı olarak birçok yolu vardır

DC

Onların bu konuyu seçilen son kez oturum ve bir sonrası bir sonraki zaman damgası ardından son parçacığı üzerinde "tık" varsa o görebiliyordu.

Sen USER_ID ve thread_id gibi sütunlar ve KULLANICI ve İPLİK tablolar ve KULLANICI ve İPLİK kimliklerini içeren bir birincil anahtara uygun kısıtlamaları ile veritabanında özel bir tablo yapabilir.

Biri bir konu açıldığında Şimdi, sadece bu özel tablo içine KULLANICI-İPLİK-ÇİFT yerleştirin.

Lütfen konu listelerinde artık sadece hiç orada kullanmak uygun olanı o tabloyu dış-katılabilirsiniz. Yeni tablo herhangi bir yerinde null içeriyorsa, bu parçacığı okunmamış olduğunu. Bu listeleri gibi sağlayacaktır:

  • "Okunmamış" işareti ile Tüm Konular
  • Tüm okunmamış konuları
  • Kullanıcı XY tarafından okunan Konular

Bu tabloya bir tarih sütunu eklerseniz, hatta daha ilginç şeyler yapabilirsiniz.

Sadece çok ağır olumsuz performans etkilerini önlemek için tuşları ve endeksler üzerinde bir göz tutmak. Sadece mevcut sorguları içine katılarak KULLANICI-İPLİK-tablodan okumaya çalışın. Bu bireysel sorguları her zaman yürütme çok daha hızlı çalışacak.

Okuma kullanıcı değil zaten varsa, bir iş parçacığı okuma alır zaman bir ekleme alır bir tablo olabilir. Sonra birisi böylece tüm kullanıcılar için okunmamış yapım, bu iş parçacığı için tablodaki tüm kayıtları silebilirsiniz konuya ekler.

Tablo yapısı gibi bir şey olurdu

forum_id thread_id user_id

Isteğe bağlı ekstra ile has_read_id bir bileşik anahtar yapma, diğer alanları ile birincil anahtar için.