Kullanım uyarıları yönetme

3 Cevap php

Ben bir kullanıcı uyarılır için gibi her bir timelapse azaltma olmalıdır değerleri ile çalışmak için kullanılan değilim, örneğin bir 30 days o 3 warns önce maksimum değerine ulaşabilir süre devam ettiği uyarmak kullanıcı yasaklandı olsun

Ben böyle bir kullanıcı tablo tasarlamak için düşündüm ama şimdi bunun üzerinde çalışmak gerekir, ben her 30 günde değerlerini azaltma yararlı bulmuyorum:

table_user
- username
- email
- warnings (integer)
- last_warn (timestamp data type)

Biraz php sayacını kullanmak gerekir?

kullanıcı uyarılar herhangi bir standart tekniğinin mevcut mu?

3 Cevap

Gibi, kullanıcıdan gelen uyarılar kırarak, tabloları normalleştirmek:

Table: Users
UserID  int auto generate PK
UserName
UserEmail

Table: UserWarnings
UserID
WarningDate

Üç uyarı son 30 gün içinde varsa şimdi belirlemek için bir sorgu yazabilirsiniz. Bu sorguyu çalıştırdığınızda bir "uyarmak" olur, ve bir satır döndürdü ise, kullanıcıyı yasaklamak.

Sorgu bu gibi bir şey olacaktır:

SELECT
    COUNT(*)
    FROM UserWarnings
    WHERE UserID=...your user id... AND WarningDate>=...current date time...
    HAVING COUNT(*)>2

Bir uyarı tablo yaparak, size yararlı olabilecek, tam bir uyarı geçmişini tutabilir.

Sen başka bir tablo oluşturabilir

User_warnings:
    user_id
    warn_timestamp

Hala iki veya daha fazla uyarı mevcut ise kullanıcı olduğu zaman warned, ilk 30 gün bütün girişleri eski silin, ardından denetlemek. Sonra kullanıcıyı yasak.

Tüm uyarılar hakkında bir tarih istiyorsanız, eski uyarıları silmek, ama sadece son 30 gün içinde uyarılar için sorgulamaz.

Bu şekilde her gün azaltma var, ama sadece bir uyarı göründüğünde kontrol etmek zorunda değilsiniz.

Kullanıcı uyarı sistemleri için standart bir tasarım gerçekten var, ben inanıyorum. "Üç grev ve dışarı konum" her zaman iyi değil tipik bir yaklaşım, ama. Web siteme N kuralları var ve biz bu K bu kuralların söyleyeceğim Örneğin, ciddi suçlar sonra çok ciddi değil suçlar söyleyebilirim vardır üç grev verir. Ama belki ciddi suçlar Autoban veya iki grev verecek?

Ben böyle bir şey kurmak için olsaydı, ben bu gibi görünüyordu bir tablo yaratacak:

user_warnings:
- warning_id
- user_id
- created_at
- offense_level

Ve sonra belki daha büyük ya da hesabinızın kapatılmasına sebep seviyesinin değerine eşit olan son T gün boyunca bir miktar suç seviyesine sahip herhangi bir kullanıcı bulabiliriz kurmak bir sorgu var. Toplam suç seviyesi önerilen değerin üzerinde olduğunu ve eğer, kullanıcı yasaklama. Ben 5 gibi bir şey olmak suç düzeyini ayarlamak derim, ve suçların düzeylerine sahip.

Benim görüşüme göre, olsa da, geçmiş suçları silmek asla. Daha önce oldu şeyleri hatırlamak önemlidir zaman asla bilemezsiniz, ve bunun kayıtlarını tutmak iyidir. Sadece bu sorgu sadece az 30 gün yaşlı (veya kurmak isteyen konum uyarılar olabilir, ancak kaç gün eski) vardır tarihlerini kontrol emin olun.