Wiem że już podobne tematy były na forum (nawet przeczytałem kilka

Mam mały dylemat przy tworzeniu bazy danych dla strony z bazą programów, gier i sterowników. Oto kilka wariantów o których myślę.
Wariant 1
Dosyć prosty i w porządku dla małej liczby rekordów, ale co w przypadku dajmy na to 10 000 aplikacji, 500 kategorii, 100 000 komentarzy? i około 500-1000 ludzików na stronie? Mogłoby być ciężko jak dla mnie.
Tabela Aplikacje
Id | IdProducenta | IdLicencji | IdKategorii | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu | TypAplikacji <--- (tzn. Czy sterownik, program czy gra, wartości 1,2 lub 3)
Tabela Kategorie
Id | Nazwa
Tabela Komentarze
Id | IdUzytkownika | IdAplikacji | Komentarz
Tabela Obrazki <-- do jednej aplikacji może być więcej niż 1 obrazek stąd osobna tabela
Id | IdAplikacji | LinkDoObrazka
Wariant 2
Czyli rozbicie wszystkiego na tabele, pasuje od strony logicznej, bo gry, programy i sterowniki maja rożne kategorie. Wszystko jest rozłożone na klilka tabel, więc obciążenie danej tabeli jest mniejsze. Nie podoba mi się natomiast że obrazki rozbite są w 3 różnych tabelach, wolałbym mieć je wszystkie w 1 tabeli, jest to w zasadzie nie możliwe z powodu różnych indexów w każdej z tabel gry, sterowniki, programy.
Tabela Gry
Id | IdProducenta | IdLicencji | IdKategoriiGry | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu |
Tabela Programy
Id | IdProducenta | IdLicencji | IdKategoriiProgramy | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu |
Tabela Sterowniki
Id | IdProducenta | IdLicencji | IdKategoriiSterownikii | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu |
Tabela KategorieGry
Id | Nazwa
Tabela KategorieProgramy
Id | Nazwa
Tabela KategorieSterowniki
Id | Nazwa
Tabela KomentarzeGry
Id | IdUzytkownika | IdGry | Komentarz
Tabela KomentarzeProgramy
Id | IdUzytkownika | IdProgramu| Komentarz
Tabela KomentarzeSterowniki
Id | IdUzytkownika | IdSterownika | Komentarz
Tabela ObrazkiProgramy
Id | IdProgramu | LinkDoObrazka
Tabela ObrazkiGry
Id | IdGry | LinkDoObrazka
Tabela ObrazkiSterowniki
Id | IdSterownika | LinkDoObrazka
Wariant 3 - i ostatni

Czyli wolna amerykanka - możliwość wyboru co chcemy mięć w 1 tabeli, a co w wielu tabelach
Tabela Aplikacja
Id | IdAplikacji | typ | <--- (IdAplikacji to id programu, sterownika lub gry, a Typ określa czy to jest sterownik, program czy aplikacja), dzięki tej tabeli pośredniczącej, każdy z rekordów tabeli, ma swój unikalny indeks.
Tabela Gry
Id | IdProducenta | IdLicencji | IdKategoriiGry | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu |
Tabela Programy
Id | IdProducenta | IdLicencji | IdKategoriiProgramy | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu |
Tabela Sterowniki
Id | IdProducenta | IdLicencji | IdKategoriiSterownikii | Nazwa | Wersja | Opis | DataDodania | NazwaProducenta | LinkDoProgramu |
Tabela KategorieGry
Id | Nazwa
Tabela KategorieProgramy
Id | Nazwa
Tabela KategorieSterowniki
Id | Nazwa
Tabela Obrazki
Id | IdAplikacji | LinkDoObrazka
Myślę nad tym i nie wiem który wariant wybrać. Te tabele o których napisałem wyżej są bardziej rozbudowane, ale nie chciałem przytaczać zbędnych danych tylko nakreślić problem. Nie wiem które rozwiązanie jest bardziej optymalne. Czy wariant 3, wprowadzenie dodatkowej tabeli z indexem jest dobrym pomysłem? Obstawiałbym za tym bo dałoby mi to szersze pole manewru. Sam już nie wiem i liczę na podpowiedź mądrzejszych odemnie.
pozdrawiam