ASP.NET MVC - Istodobnost baze podataka

Sadržaj
Rukovanje podudarnost U web aplikacijama to je jedna od tema kojoj moramo posvetiti malo kvalitetnog vremena, jer zbog same prirode aplikacije možemo pronaći slučajeve u kojima nekoliko korisnika mora stupiti u interakciju s istim elementom.
Samo po sebi je interakcija To nije problem, pravi problem dolazi kada je nakon izmjene ili dodira ovog elementa potrebno spremiti ga u bazu podataka i tada dva ili više korisnika žele učiniti radnju na istom elementu u isto vrijeme, to je mjesto gdje naša logika mora definirati ponašanje kako bi znalo koji je ispravan način za rješavanje ovoga.
Kao što smo objasnili na početku, podudarnost To je kada dva ili više aktera rade na elementu u našoj aplikaciji, generirajući radnju protiv baze podataka.
Slučaj istodobnostiProblemi mogu nastati kada su promjene u sukobu, na primjer: korisnik A spremio je vrijednost, ali je korisnik B u to vrijeme također mijenjao i spremio drugu vrijednost, u očima korisnika A njezin sadržaj nije izmijenjen i u očima korisnik B, ništa ga nije spriječilo da izvrši promjenu.
Ove vrste sukoba mogu narušiti performanse naše aplikacije u očima korisnika, pa moramo procijeniti hoće li se područja koja imamo isplatiti ili ne programirati za istodobnost.
Pogledajmo neke vrste istodobnosti, na ovaj način možemo razumjeti malo više koje vrste radnji možemo izvršiti u našim aplikacijama:
Pesimistična istodobnostOvaj pristup predlaže da prilikom korištenja baze podataka napravimo preventivno blokiranje registra koji se koristi, čime izbjegavamo da više korisnika istodobno mijenja vrijednost, problem rezultira time što ga u web okruženju nije moguće temeljito koristiti, budući da ne postoje stanja koja ne znamo da li je zaključavanje je primijenjen ili uklonjen dok ne komuniciramo sa poslužiteljem, stvarajući zabunu i sporost u uporabi.
Optimističan odazivOvaj drugi pristup umjesto toga čini nešto malo kompatibilnije s webom. Prilikom izmjene, prije spremanja u bazu podataka, provjerava se da podaci nisu izmijenjeni od trenutka čitanja, radi toga uspoređujemo vrijednosti zapisa i pridruženo polje koje ima vremensku oznaku s datumom, vremenom i sekundama radi veće točnosti.
ASP.NET MVC Ne podržava pesimistički pristup, pa moramo raditi s optimističnim, jer za to moramo našim strukturama dati polja s datumima kako bismo spremili zadnju izmjenu, tako da možemo znati je li vrijednost promijenjena nakon što smo dobili zapis i prije spremanja, s ovim možemo dobiti upozorenje i tako odlučiti hoćemo li prebrisati te vrijednosti.
Pogledajmo mali primjer koda kako bismo to mogli potvrditi:

Primjećujemo da prilikom promjene u bazi podataka potvrđujemo je li polje promijenjeno nakon čitanja, ako je tako pravimo iznimku, s time ćemo moći poduzeti odgovarajuće radnje, ostavljamo i prostor za rad na različitim iznimkama koje se mogu generirati.
Na kraju ovog vodiča već znamo nešto više o istodobnosti u bazama podataka i kako riješiti problem u ASP.NET MVC.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave