transakcja na poziomie aplikacji

0

Witam
Powiedzmy ze jest serwis gdzie klient po zalogowaniu moze zamawiac powiedzmy obiady.
Odbywa sie to tak ,że klika opcje "zamowienie" i nastepnie w paneliku wybiera sobie jakie skladniki chce do obiadu. Klient wybrał sobie np. "surówkę z kapusty"(id skladnika jest dodawane do tablicy sesyjnej) , następnie zaczyna przeglądac rodzaje kotletów a w tym włąsnie momencie moderator serwisu wywala "surówke z kapusty" z bazy (powód jest nieważny). No i teraz jak dodamy nasze zlecenie do bayz to w bazie znajduje sie referencja do nieistniejącej krotki czyli spojnosć bazy szlag trafia.

JEst jakies standardowe rozwiazanie tego problemu?

Mozna by wprowadzic warunek ze serwis moze byc moderowany tylko jesli nikt nie jest zalogowany.Ale to moderator musialby sobie nastawiac budzik na 3 w nocy zeby wyczekać moment. Można niby zrobic wywieszke "remanent" ale nie wiem czy to tzw "eleganckie rozwiązanie".

także nie wiem.

0

w sqlserver2k jest takie cos jak wyzwalacze. sa to funkcje wywolywane w momencie wywolania jakiejs komendy SQL'a. moze to pomoze?

alternatywa jest opakowanie zapytania SQL w osobnej funkcji. no wiesz dorabiasz pole-flage i w funkcji warunek if(jest kotlet) pobierz kotlet else powiedz klientowi ze nie ma kotletow. albo sprawdz czy liczba kotletow rowna sie zero czy co. zreszta zalezy jak wyglada klient tego serwera.

0

A może zastanowić się nad budową bazy - czy nie lepiej wprowadzić pole np.: datą USUNIĘTA. Ktoś wybierze danie; zamiawia; admin usuwa danie; klientowi pojawi się napis, że surówka już nie jest niestety dostępna. A co jakiś czas (powiedzmy, raz dziennie) usuwasz wpisy, których data USUNIĘTA jest już ponad 1 dzień (a nikt tego w prawidłowej sesji raczej mieć nie będzie). Można też w ogóle nie usuwać z tej tabeli podczas normalnej pracy wpisów, tylko zaznaczać pole NIEDOSTĘPNA, a jak ponownie do jadłospisu wprowadzą danie, to je odznaczyć.

0

Może dojść do taj sytuacji: klient komponuje sobie danie, np. na początku wybrał kotleta, poźniej coś jeszcze, później coś tam jeszcze, zastanawiał sie, wybierał, aż w końcu skończył. Zamawia, a tu nie ma kotleta - szlak trafił całą fantazje kulinarną.

Jeśli całe zamówienie ma sie jakoś komponować, a kotlety często są usuwane, to może warto sprawdzać dostępność składników zamówienia na bieŻąco (Boże, widzisz takie błędy i nie grzmisz), tzn. np. każdorazowo przy dodaniu jakiejś pozycji do zamównienia. Wtedy klient będzie wcześniej wiedział, że czegoś nagle brak.

Przy kotletach i surówce to sie raczej nie przyda, ale przy bazie w której złożenie zamównienia wymaga więcej czasu i przemyślenia, a elementy zamówienia są zależne od siebie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1