![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam....pracuję z frameworkiem symfony ale myślę, że problem jest na tyle ogólny że można go umieścić tutaj...
Mianowicie...jestem w trakcie projektowania serwisu aukcyjnego i mam dylemat...Każdą aukcję opieram na statusie. Czyli jeżeli aukcja ma status active oznacza, że jest dostępna i można licytować itd. Jak najlepiej zrobić aktualizację tych aukcji? Myślałem, żeby sprawdzać warunek i aktualizować w momencie pierwszego wejścia jakiegokolwiek usera na daną aukcję po czasie zakończenia. Czyli powiedzmy aukcja trwa do 12 00, w momencie jak ktoś wejdzie po 12 00 będzie sprawdzany warunek i zmieniany status. Ale wtedy też jest problem, bo w momencie wyszukiwania aukcji będą również widoczne te które mają jeszcze niezmieniony status (czyli np. nikt jeszcze nie wszedł na taką ). Myślałem też o metodzie np. checkAndChangeStatus(), która byłaby w każdym możliwym miejscu wywoływana w celu aktualizacji. Jeszcze wcześniej myślałem na bezpośrednim działaniu na bazie (PL/SQL albo wyzwalacze) ale po dłuższym zastanowieniu też straciło to sens. Proszę o pomoc i wypowiedź człowieka, który takie coś robił i wie jak to najlepiej zrobić. Pozdrawiam. Ten post edytował blackroger 23.11.2009, 01:49:15 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To nie ma żadnego związku z programowaniem obiektowym. Przenoszę.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Status aukcji to raczej abstrakcyjna właściwość, czyli może zależeć od - nawet kilku - innych zmiennych.
W tym co opisujesz to nic innego jak dynamiczne porównanie dat przy pobieraniu zestawu zakończonych/niezakończonych aukcji. Dla Propela to bedzie:
Pisze z palca, więc mogą być literówki. Ten post edytował LBO 23.11.2009, 14:37:02 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Właściwie to dwa sensowne rozwiązania są:
1) Status rozpoznawać na podstawie daty zakończenia aukcji (tj sprawdzać czy data zakończenia aukcji (kolumna w bazie danych) jest mniejsza/większa od aktualnej) 2) Przy pomocy Crona co np. 5 minut odpalać skrypt wyszukujący zakończone aukcje i zmieniający ich status. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki...tak jak myślałem, że sprowadzi się to i tak do porównania dat rekordów. Miałem nadzieję, że można jakoś uprościć sposób wyszukiwania, no ale rzeczywiście ciężko bez żadnej akcji wywołać jakąś metodę
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki...tak jak myślałem, że sprowadzi się to i tak do porównania dat rekordów. Miałem nadzieję, że można jakoś uprościć sposób wyszukiwania, no ale rzeczywiście ciężko bez żadnej akcji wywołać jakąś metodę
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja uważam, że możesz całkowicie zrezygnować ze statusu i raczej postawić na status jako wypadkową wartości np. innych kolumn (zaktualizowałem przykład w poprzednim poście). Ewentualnie zastosować rozwiązanie mieszane.
Nie twierdzę, że sprawdzi się to w każdych warunkach. Ten post edytował LBO 23.11.2009, 14:44:55 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok. Wielkie dzięki. Ze statusu nie mogę całkowicie zrezygnować bo ma mieć ona jeszcze takie stany jak 'prepared' gdzie będzie siedzieć w takim prepare lobby, 'cancelled' - to wiadomo, i jeszcze być może kilka innych, ale z tymi statusami nie będzie już problemu bo one będą się zmieniały w odpowiedzi na akcję użytkownika, więc bez problemu...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 22:22 |