![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 30.04.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
tworzę sklep internetowy który ma działać 100% bez obsługi czyli płatności tylko elektroniczne. Pisząc, wpadłem na myśl co się stanie jeśli powiedzmy 10 osób na raz złoży zamówienie w tym samym czasie i z bazy danych zostanie pobrany kolejny numer id zamówienia. Czy może wystąpić błąd w postaci pobrania tego samego id przez 2 osoby jeśli złożyły by zamówienie dokładnie w tej samej milisekundzie czy tam najmniejszej jednostce czasu jaką obsługuje sql? Powinienem jakoś się przed tym zabezpieczyć? Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Numerem zamówienia może być ID zamówienia lub jakiś hash aby nikt nie wiedział które to zamówienia,
Możesz sobie napisać klasę do autonumeracji, która generuje kolejny numer i na czas generowania blokuję bazę w celu wygenerowania kolejnego numeru, cała operacja trwa milisekundy więc kolejny użytkownik nawet tego nie zauważy. Ja mam tak zrobione w Symfony do generowania numerów zamówień. transakcje i blokada Ten post edytował LowiczakPL 20.06.2018, 06:27:25 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 08:00 |