Za każdym razem, gdy informacja jest jeden do jednego (każdy użytkownik ma jedną nazwę i hasło), prawdopodobnie lepiej jest mieć jedną tabelę, ponieważ zmniejsza to liczbę złączeń, które baza danych będzie musiała wykonać, aby pobrać wyniki. Myślę, że niektóre bazy danych mają ograniczenie liczby kolumn w tabeli, ale w normalnych przypadkach nie martwiłbym się tym i zawsze możesz podzielić to później, jeśli zajdzie taka potrzeba.
Jeśli dane są typu jeden do wielu (każdy użytkownik ma tysiące wierszy informacji o użytkowaniu), należy je podzielić na osobne tabele, aby zmniejszyć liczbę duplikatów danych (zduplikowane dane marnują przestrzeń dyskową, pamięć podręczną i sprawiają, że baza danych jest trudniejsza w utrzymaniu ).
Artykuł w Wikipedii dotyczący normalizacji baz danych może być interesujący, ponieważ szczegółowo omawia przyczyny takiego stanu rzeczy:
Normalizacja bazy danych to proces organizowania pól i tabel relacyjnej bazy danych w celu zminimalizowania nadmiarowości i zależności. Normalizacja zwykle polega na podzieleniu dużych tabel na mniejsze (i mniej nadmiarowe) tabele i zdefiniowaniu relacji między nimi. Celem jest wyodrębnienie danych, tak aby dodawanie, usuwanie i modyfikacje pola można było wprowadzać w jednej tabeli, a następnie propagować w pozostałej części bazy danych za pośrednictwem zdefiniowanych relacji.
Należy również pamiętać o denormalizacji , ponieważ są przypadki, w których powtarzanie danych jest lepsze (ponieważ zmniejsza ilość pracy, jaką musi wykonać baza danych podczas odczytu danych). Zdecydowanie zalecam, aby na początku Twoje dane były jak najbardziej znormalizowane i denormalizuj tylko wtedy, gdy masz świadomość problemów z wydajnością w określonych zapytaniach.