![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 472 Pomógł: 8 Dołączył: 14.03.2004 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
są dwa rodzaje użytkowników, powiedzmy zwykły użytkownik i użytkownik będący prawnikiem. Łączą ich wspólne cechy jak login, hasło, mail itp. Dodatkowo prawnik ma cechy których nie posiada zwykły user np. imię i nazwisko, zwykły user posługuje się nickiem. Jedna tabela czy dwie na przechowywanie informacji o uzytkownikach? Jakie za jakie przeciw do każdego z rozwiązań ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Też miałem podobny problem i zbadałem go empirycznie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Mam tabele: tabuser i tabprofil. W pierwszej trzymam login, hasło, aktywny, data założenia konta itp. Druga tabela jest tabelą zawierającą specyficzne dla danego systemu dane, np imię i nazwisko, adres, zawód, wykształcenie, pola konfiguracyjne (coś zezwala) itd. Na podstawie tych dwóch tabel mam stworzony widok. Oczywistym jest, że na odpowiednich kolumnach pozakładane mam indeksy. Wady: - wolniejsze niż jedna tabela (ale nieznacznie, używając cache-owania nie ma różnicy) - brak możliwości bezpośredniej edycji danych w widoku (trzeba modyfikować osobno tabuser i tabprofile) Zalety: - podczas synchronizacji bazy użytkowników nie muszę się martwić o pola których nie ma / które są w różnych bazach - przenoszenie kont między systemami (np terminarz, sklep, poczta, itd) sprowadza się do przeniesienia danych z jednej tabeli oraz wszystkiego tego co można z drugiej. Jeśli czegoś brakuje, to zanim przeniesiony użytkownik będzie mógł korzystać z nowego serwisu, musi uzupełnić dane. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 01:03 |