Tabele: wiele małych czy jedna duża?

0

Cześć,
Piszę sobie stronkę internetową i stanąłem przed takim problemem:
Mam wiele grup danych, które są stosunkowo małe i z jakiegoś powodu chciałbym je trzymać w bazie (czasami może być potrzeba ich zmiany - dodania nowych, zmodyfikowania starych etc. a nie chciałbym ingerować w kod aplikacji). Przykładowo mogą to być stawki VAT obowiązujące w danym roku (obecnie jest ich 7: 23%, 8%, 5%, 0%, NP, ZW, OO) lub formy płatności (przelew, gotówka, karta), rodzaje nieobecności pracowników (urlop, chorobowe etc.) itd.

I teraz pytanie czy w takim przypadku lepiej jest tworzyć oddzielną tabelę na każdą z wymienionych grup danych czy lepiej stworzyć jedną tabelę gdzie w jakiś sposób będę oznaczać czy chodzi o stawki VAT, czy o typy płatności czy ewentualnie inne dane i odpowiednio filtrował te o które mi w danym momencie chodzi? Tzn. czy lepiej mieć wiele malutkich tabel w bazie danych czy może jedną większych rozmiarów, która będzie trzymać większość takich nietypowych danych? Oczywiście zakładam, że ilość kolumn będzie taka sama lub podobna w każdej tabeli.

Zastanawiam się czy jest inna wada trzymania wszystkiego w oddzielnych tabelach niż mnożenie tabel, co prowadzi do mini-chaosu?

Czy ma to wpływ na wydajność aplikacji?

Z góry dzięki za odpowiedzi.

3

Slowo kluczowe: normalizacja baz danych.

W skrocie to zalezy od bazy, struktury danych i tego co chcemy osiagnac. W relacyjnych bazach generalnie normalizujemy, ale sa tez takie uzywane do cachowania, przechowywania sesji itp (np Redis, Couchbase, Cassandra) i wtedy przechowuje sie calosc.

3

Atomowość :)
Wszystko dzielimy ładnie tak aby w momencie kiedy nastąpi nagły wzrost danych nie trzeba było kombinować z przenoszeniem danych między tabelami.
Btw mała podpowiedź co do stawek VAT. Dodaj do tabeli słownikowej daty obowiązywania, bo czasem się zmieniają, dla kodu to tylko dodatkowy warunek sprawdzający datę a zaoszczędza potem roboty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0