Witam serdecznie,
sam nie wiem czy powinienem posta umieścić w kategorii SQL czy PHP.
Chodzi o to, że posiadam formularz rejestracji, dane z tego formularza wysyłam do bazy danych, problem polega na tym że potrzebują one dwóch tabel. W jednej (adresy_email) przechowuje adresy email (id, adres), w drugiej (users) dane użytkownika (login, hasło, id_adresu_email).
W tabeli users nie przechowuję całych adresów e-mail a jedynie ich ID z tabeli adresy_email.
W pierwszej kolejności zapisuje adres do tabeli adresy_email, następnie pozostałe dane w tabeli users, jednak potrzebuję ID adresu z tabeli adresy_email.
Mógłbym to zrobić prostym zapytaniem:
SELECT id FROM adresy_email WHERE adres = adres_z_formularza;
Jednak ciekawi mnie czy jest na to jakiś lepszy sposób, bez przeszukiwania całej tabeli w poszukiwaniu jednego konkretnego ID.
Mógłbym to zrobić również pobierając ostatnie wstawione ID, znalazłem do tego nawet funkcję:
SELECT LAST_INSERT_ID();
Ale wydaje mi się, że może ona przysporzyć sporo problemów, no bo co jeśli w tym samym momencie dwóch użytkowników będzie chciało się zarejestrować i stanie się tak, że najpierw pójdzie INSERT do tablicy adresy_email pierwszego użytkownika, później INSERT do tablicy adresy_email drugiego użytkownika, a dopiero później funkcja LAST_INSERT_ID() pierwszego i drugiego użytkownika? Wtedy dwaj użytkownicy będą mieli przypisany ten sam adres. Czy jest możliwe wystąpienie takiego błędu? Jak go uniknąć?