![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 20.12.2005 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele na której intensywnie wykonywane są INSERTY, SELECT raz na tydzień do generowania raportów.
Istnieje możliwość że dwaj użytkownicy będa chcieli wstawić w tym samym czasie wiersz do tabeli. Mam własną klase obsługi bazy, moje pytanie jest nastepujace czy wystarczy
Aby zabezpieczyc sie przed taka sytuacją na 100%? a tabela MyISAM Ten post edytował wijet 3.02.2006, 12:18:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
jezeli dwuch userow wstawia cos do tej samej tabeli (zakladam ze kozystasz z pola auto_increment) wiec ktorez z nich zawsze trafi jako pierwsze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wiec ni musisz sie tym przejmowac, inaczej jesli klucz glowny sam przydzielasz za pomoca jakiegos schematu, wtedy mzoe sie zdazyc ze dwie osoby dostana ten sam identyfikator wiec ta ktorej zapytanie bedzie pierwsz wykona sie poprawnie a tej innej osoby wygeneruje blad
Cytat A tak dla mojej wiedzy w przypadku UPDATEów wystarczy blokować tabele do zapisu a można zostawić odczyt? skoro jedna osoba bedzie mogla (miala prawa) do zrobienia UPDATE to czemu inna nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jest to sztandarowy przyklad problemu rezerwacji biletow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dwie osoby cha zamowic bilet, zadaja zapytanie do boazy czy sa wolne mijsca, jest wolne wiec jedna i druga osoba rezerwuja miejsce (nie swiadome swojego istnienia:)) gosc, ktory pierwszy wysle formulaz dostanie bilet a gosc numer 2 wyplni frmulaz, kasa zostanie mu scagnieta z konta a biletu nie dostanie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) i dlatego nalezy sie martwic UPDATE (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 16:53 |