Przechowuję różne dane użytkownika w mojej bazie danych MySQL. Pierwotnie był ustawiony w różnych tabelach, co oznaczało, że dane są połączone z identyfikatorami użytkowników i wyprowadzane za pomocą czasami skomplikowanych wywołań w celu wyświetlenia i manipulowania danymi zgodnie z wymaganiami. Konfigurując nowy system, prawie sensowne jest połączenie wszystkich tych tabel w jeden duży zbiór powiązanych treści.
- Czy to będzie pomoc czy przeszkoda?
- Szybsze rozważania przy dzwonieniu, aktualizowaniu lub wyszukiwaniu / manipulowaniu?
Oto przykład niektórych struktur moich tabel:
- użytkownicy - identyfikator użytkownika, nazwa użytkownika, adres e-mail, zaszyfrowane hasło, data rejestracji, ip
- user_details - dane z plików cookie, imię i nazwisko, adres, dane kontaktowe, przynależność, dane demograficzne
- user_activity - wkład, ostatnio online, ostatnie przeglądanie
- user_settings - ustawienia wyświetlania profilu
- user_interests - zmienne reklamowe, na które można kierować reklamy
- user_levels - prawa dostępu
- user_stats - trafienia, podliczenia
Edycja: Głosowałem za wszystkimi odpowiedziami do tej pory, wszystkie zawierają elementy, które zasadniczo odpowiadają na moje pytanie.
Większość tabel ma relację 1: 1, co było głównym powodem ich denormalizacji.
Czy wystąpią problemy, jeśli tabela obejmuje ponad 100 kolumn, podczas gdy duża część tych komórek prawdopodobnie pozostanie pusta?