![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 25.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam takie dwie tabele w bazie danych:
tabela "dane" ilsoc_userow int ... tabela "uzytkownicy" id_usera int (PRIMARY KEY) .... Podczas zakladania nowego konta (wpis przez INSERT) calosc dziala w ten sposob: pobierz ilosc userow -> $ilosc=ilosc_userow+1 -> zapisz ilosc userow w "dane" -> utworz przez INSERT wpis w "uzytkownicy" gdzie "id_usera"=$ilosc no i wszystko byloby cacy, gdyby nie to, ze jezeli 2-ch uzytkownikow zalozy konto w tej samej sekundzie to jeden wpis robi sie poprawnie, a drugi jest pusty (wpis bez zadnych danych) Jak mozna temu zaradzic? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 25.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
hmm... pewnie masz racje wprowadze ta zmiane, do tej pory uzywalem zapisu ilosc w innej tabeli, poniewaz po 1. liczba uzytkownikow jest podana na dole strony i myslalem, ze uzywanie SELECT COUNT bedzie bardziej obciazalo baze niz pobranie "gotowej" wartosci a po 2. wpis w innej tabeli eliminowalby rowniez uzywanie SELECT COUNT podczas rejestracji...
Zastanawia mnie czy COUNT jest "lekkie" czy przy duzej ilosci rekodrow moze zamulic. Sam myslalem nad rozwiazaniem: <zablokuj tymczasowo baze> wykonaj instrukcje <odblokuj baze> ale nie wiem czy istnieje taka mozliwosc oraz czy jest skuteczna (co z uzytkownikiem/uzytkownikami, ktory w tym czasie jest blokowany - tj. rowniez zaklada konto) inny sposob, aczkolwiek nie wiem czy mozliwy, to cos w rodzaju:
Inna sprawa jest czy jezeli uzyje metody pobierania przez COUNT - czy to bez blokowania bazy wystarczy Ps. jezeli chodzi o usuwanie uzytkownikow i o rzeczy o ktorej piszesz to mam tego swiatomosc i po prostu nie usuwam wpisow tylko mam kolumne "typ" z danymi 1|2|3 dla konto aktywne|konto nieaktywne|konto usuniete Ten post edytował shycat 7.09.2011, 17:29:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 02:37 |