Rzeczy do rozważenia przy swoich podejściach
Przechowywanie profilu użytkownika w tabeli użytkowników
- Na ogół będzie to najszybsze podejście do uzyskania danych z profilu, chociaż możesz mieć tutaj wiele zbędnych danych (kolumny, które mogą nie zawierać żadnych informacji).
- Szybko (zwłaszcza jeśli wyciągasz tylko potrzebne kolumny z bazy danych)
- Zmarnowane dane
- Trudniejsza praca z/utrzymanie (prawdopodobnie z interfejsami takimi jak PHPMyAdmin)
Przechowywanie profilu użytkownika w relacji User_Profile Tabela 1-1 z użytkownikami
- Powinno być dość szybkie z dołączeniem i możesz wyeliminować pewną nadmiarowość danych, jeśli profile użytkowników nie zostaną utworzone, chyba że użytkownik je wypełni.
- Łatwiejsza obsługa
- Już trochę wolniej z powodu dołączenia (lub drugiego zapytania)
Przechowywanie profilu użytkownika jako właściwości i wartości w tabelach
*tj. Tabela do przechowywania możliwych opcji, tabela do przechowywania identyfikatora użytkownika, identyfikatora opcji i wartości*
- Nie przechowuje się zbędnych danych, wszystkie dane są istotne
- Najbardziej znormalizowana metoda
- Wolniej pobierać i aktualizować dane
Mam wrażenie, że większość witryn korzysta z drugiej metody i przechowuje informacje o profilu w drugiej tabeli, co jest typowe dla większości większych witryn w celu denormalizacji bazy danych (twitter, facebook), aby uzyskać większą wydajność odczytu kosztem wolniejszej wydajności zapisu.
Myślę, że przechowywanie informacji o profilu w drugiej tabeli jest prawdopodobnie dobrym rozwiązaniem, gdy patrzysz na 50 000 rekordów. Aby uzyskać optymalną wydajność, chcesz, aby dane, które są zapisywane, były mocno oddzielone od danych, które są intensywnie odczytywane, aby zapewnić efektywne działanie pamięci podręcznej.