Marcin Buczek

Marcin Buczek archiwista, Archiwum
Państwowe w Lublinie

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

Czy jest możliwe z poziomu bazy np MySQL wprowadzenie ograniczeń co do liczby wprowadzanych rekordów w określonym czasie. W mojej aplikacji użytkownicy logują się na swoje konta i zamawiają produkty. Mam jednak problem z wbudowaniem ograniczenia które pozwoli na zamówienie 10 rekordów w ciągu 24 godzin. Jeśli jest jakieś rozwiązanie to mile się z nim zapoznam lub poproszę o jakąś podpowiedz to może sam dojdę do reszty. Jestem początkującym użytkownikiem MySQL
Leszek Rabek

Leszek Rabek IT Team Manager/IT
Designer/Analityk/Se
nior Developer

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

Można zastosować różne podejścia, ale algorytm będzie podobny:

Sprawdzasz ile zamówień dany użytkownik wykonał w ciągu ostatnich 24 godzin (przykładowo systemowa data złożenia zamówienia). Oczywiście zamówienia nie anulowane. Jeżeli spełnione są warunki (tu akurat jeżeli zamówień jest mniej niż 10) to pozwalasz dodawac kolejne, jeżeli nie no to komunikat kierowany do użytkownika.

Od strony interfejsu użytkownika można aktywować funkcjonalność dodawania zamówień jeżeli warunek jest ok, w przeciwnym wypadku dezaktywować.
Należy sprawdzać podczas dodawania kolejnych zamówień.

konto usunięte

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

trigger
jak count w 24 h większy niż 10 to rollback ;)
Jarosław Żurek

Jarosław Żurek Dyrektor ds. rozwoju
systemów
informatycznych

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

jakbyś "poszedł" w te triggery, to pamiętaj, aby sprawdzić count'em liczbę zamówionych produktów na początku transakcji zamówienia i na końcu, bo użytkownik może działać np. na kilku sesjach...

konto usunięte

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

Marcin Buczek:
Czy jest możliwe z poziomu bazy np MySQL wprowadzenie ograniczeń co do liczby wprowadzanych rekordów w określonym czasie. W mojej aplikacji użytkownicy logują się na swoje konta i zamawiają produkty. Mam jednak problem z wbudowaniem ograniczenia które pozwoli na zamówienie 10 rekordów w ciągu 24 godzin. Jeśli jest jakieś rozwiązanie to mile się z nim zapoznam lub poproszę o jakąś podpowiedz to może sam dojdę do reszty. Jestem początkującym użytkownikiem MySQL
Nie bardzo rozumiem to "wciągu 24 h", Można zliczać zamówienia dla klienta w zadanym przedziale czasowym od teraz do 24 h wstecz - wówczas mamy np problem ze jak klient zrobi 10 zamówień w sobotę o 20 to w niedziele o 8 rano nie zrobi zamówienia. Monza zrobić tez tak że zrobić licznik dla klienta i na jego podstawie dopuszczać możliwość zrobienie kolejnego zamówienia bądź nie i np o 24 zerować licznik dla wszystkich klientów. Ja bym zrobił sprawdzanie wcześniej niż na trigerze - na trigerze tylko dodatkową blokadę ale np w monecie jak kliknie np zamów na pozycji.
Roman Janas

Roman Janas Tech. Sup. & Opr.
Supervisor, Amway
Polska Sp. z o.o.

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

Marcin Buczek:
Mam jednak problem z wbudowaniem ograniczenia które pozwoli na zamówienie 10 rekordów w ciągu 24 godzin.

Na wstępie proponuję zdefinować co to jest 24 godziny. Czy chodzi o 24 godziny od złożenia ostatniego zamówienia czy o zamowienia złożone w ciagu jednego dnia kalendarzowego (pomiedzy godzina 0:00 i 24:59). Jeżeli problemem jest liczba zamówień to trzeba też wziąć pod uwagę weekendy (sobota, niedziela) jak i dni świąteczne. W przypadku świąt Bożego Narodzenia może to w skrajnym przypadku być nawet 5 dni kalendarzowych (3 dni świąt plus sobota i niedziela).

Ponadto trzeba zdefiniować czy mówimy o 10 zamówieniach w ciągu 24h czy o 10 produktach (zlicznym rekordem może być zarówno zamówienia jak i produkt / pozycja na zamówieniu).

Najłatwiejszą drogą jest przyjęcie 24 godzin jako jednego dnia kalendarzowego i zliczania zamówień (produktów) dokonanych w danym dniu.
Marcin Buczek

Marcin Buczek archiwista, Archiwum
Państwowe w Lublinie

Temat: Ograniczenie liczby wprowadzonych rekordów w czasie

n użytkowników zamówiło każdy max 10 produktów w określonym cyklicznym przedziale czasu 24 godzin (razem max n * 10 zamówień w czasie np: od 12:00 do 12:00 dnia następnego)

Następna dyskusja:

Access 2007 - Filtrowanie i...




Wyślij zaproszenie do