Rezervuok prekę tik tada, jei jos tikrai yra
Vartotojas įsidėjo prekę į krepšelį — backend'ui reikia rezervuoti tris vienetus sandėlyje, bet tik jei jų fiziškai pakanka. Jei darysi „perskaitė likutį → patikrino → nurašė“ atskiromis komandomis, dvi lygiagrečios transakcijos gali pamatyti vienodą skaičių ir abi rezervuoti paskutinį vienetą.
Viena atnaujinimo komanda su sąlyga tai išsprendžia atomiškai: pabandyk padidinti reserved trim vienetais prekei su identifikatoriumi 1, bet tik tada, kai qty - reserved ne mažesnis nei 3. Jei nė viena eilutė nebuvo atnaujinta — backend'e grąžini vartotojui „nėra sandėlyje“.
Tik INSERT/UPDATE/DELETE — galutinio SELECT nereikia.
Prisijunkite, kad matytumėte pateikimų istoriją
PrisijungtiPrisijunkite, kad naudotumėte DI mentorių
Prisijungti