Rozłożyłem swoją tabelę użytkowników na części i zaczynam składać zapytania aby działały na kilku tabelach jednocześnie, co nie będzie dla mnie łatwe, a wręcz przeciwnie bo ja laik jestem i się dopiero uczę. Przeczulony na punkcie optymalizacji czyli wydajnej architektury budowy bazy wpadłem na taki pomysł:
- a mianowicie zaczynając od rejestracji użytkownika i przechowywania jego loginu, hasła i adresu e-mail w tabeli, wymyśliłem, że adres e-mail jako ukryty dla użytkowników niepotrzebnie tylko zajmuje miejsce w tabeli głównej użytkownika, która to poddawana będzie przeszukiwaniu i postanowiłem zapisać go w odrębnej tabeli, razem z danymi które nie będą brane pod uwagę przy wyszukiwaniu. Natknąłem się na nie lada problem przy przebudowie zapytań, bo skoro adres e-mail będzie w osobnej tabeli, a id użytkownika dopiero utworzy się przez auto_increment to raczej nie jest możliwym (wedle mej oceny) w jednym zapytaniu zapisać login, hasło które to otrzymają swój id i jednocześnie w drugiej tabeli przypisany do nowo nadanego id zapisać rekord z adresem e-mail.
Na moją skąpą wiedzę mógłbym to zrobić w 3 zapytaniach, jednak 3 zapytania to o 2 więcej niż miałem dotychczas, a jeśli jest to możliwe to chciałbym tego uniknąć.
Wprawdzie wpadł mi do głowy taki dość ryzykowny pomysł, który to przedstawia się tak:
- w tabeli users id generuje się automatycznie i podczas zapisu nowego użytkownika przyjmie ono jakąś określoną wartość
- w tabeli dane (z e-mail) też ustawie auto_increment i teoretycznie oba id będą tej samej wartości
Jednak ja nie wiem czy mogę tak temu zaufać, bo jeśli coś się przestawi to...wszystko się pomiesza.
Jest możliwym osiągnąć synchronizację numerów id dwóch tabel lub też może jakiś inny sposób na zapis w 2 tabelach jednym zapytaniem?
A może niepotrzebne me obawy, że oba pola id z auto_increment się rozsynchronizują?