Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Doctrine] zwiększenie stanu magazynowego
zordon
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,
czy Doctrine (póki co 1.2) obsługuje zmianę wartości pól w stylu:
stan_magazynowy = stan_magazynowy + 10

W tej chwili robię:
  1. $row->stan_magazynowy = new Doctrine_Expression('stan_magazynowy + 10');

Wadą tego rozwiązania jest to, że obiekt PO ZAPISANIU zamiast aktualnej wartości liczbowej w polu stan_magazynowy posiada to co przypisałem, czyli Doctrine_Expression('stan_magazynowy + 10')
"Odświeżam" ponownie obiekt ręcznie ale zastanawiam się, czy ktoś nie wymyślił jakiegoś bardziej eleganckiego i automatycznego rozwiązania

Ten post edytował zordon 29.02.2012, 14:09:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zordon
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


bo w przypadku gdy 2 użytkowników zechce pobrać towar z magazynu w idealnie tej samej chwili poleca do bazy 2 zapytania, ktore "nadpiszą" się nawzajem.
np początkowy stan: 10
user 1 zabiera 1 szt,
user 2 zabiera 2 szt
łącznie zabierają 3 szt.
Do bazy przy dużym ruchu mogą pójść zapytania:
  1. UPDATE magazyn SET stan_magazynowy=9 WHERE ...
  2. UPDATE magazyn SET stan_magazynowy=8 WHERE ...

stan magazynu po zakończeniu obu transakcji: 8, a powinno być 7

W przypadku
  1. UPDATE magazyn SET stan_magazynowy=stan_magazynowy-1 WHERE ...
  2. UPDATE magazyn SET stan_magazynowy=stan_magazynowy-2 WHERE ...

będzie ok

Ten post edytował zordon 1.03.2012, 14:51:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 06:42