Nie wiem czy moje będzie optymalne bo prawie nic nie napisałeś poza tym, że będą produkty i atrybuty, w Twoje strukturze ceny też nie ma jest jedynie wzmianka w tekście. Nie wynika z niego czy cena jest uzależniona od atrybutu itp.. itd ... Jeśli produkt ma jedną cenę to nie ma co się zastanawiać i cena powinna być "przy produkcie".
I teraz kluczowe pytanie ... Po czym finalnie będziesz szukał bo skoro będziesz miał ~ kilka milionów unikalnych atrybutów ( 50 000 produktów * 100 unikalnych atrybutów ) to musisz to chyba jakoś usystematyzować ?
Generalnie nie ma rozwiązań szybkich i uniwersalnych ale są uniwersalne metodologie, które takie optymalne rozwiązania pozwalają zaprojektować.Im więcej informacji i założeń wypiszesz tym lepiej można zaprojektować bazę.
Zupełnie inaczej będzie wyglądała optymalna baza danych dla sklepu komputerowego, inaczej dla działu sprzedaży w hucie a jeszcze inaczej baza biura podróży. Każda z nich może mieć po kilka lub nawet kilkaset milionów rekordów, produkty także mają wiele atrybutów ale te wspólne cechy nie oznaczają, że da się dla nich wszystkich zaprojektować jedną optymalną strukturę bazy. Wynika to np, z tego, że:
- czego innego dotyczą priorytety wyszukiwania ;
- cena może być uzależniona od atrybutów / cech produktu ;
- warunki wyszukiwania mogą być pytaniem nie tylko o produkt ale produkt w konkretnym "przekroju". Np w biurze podróży cena wycieczki zależy od wieku i ilości uczestników mimo, że to ten sam hotel, pokój i termin. To z kolei rzutuje na sposób wyszukiwania takich informacji oraz wymusza szczególne optymalizacje dla tego typu zadania.
Czasem projektując bazy dla nietypowych rozwiązań, nad trzema tabelkami co mają po 4 kolumny siedzimy po kilkanaście godzin zastanawiając się co lepiej z jakim typem, co indeksować czego nie ... Potem to implementujemy a po czasie dodajemy albo kasujemy jakąś tabelkę bo okazuje się, ze w praktyce tak jest bardziej optymalnie.
Zacznij od usystematyzowania rodzajów atrybutów:
- liczbowe przeszukiwane po równości ;
- liczbowe przeszukiwane po zakresach od - do ;
- stringi, które można słownikować ;
- stringi unikalne przeszukiwane tekstowo ;
Opisz dokładnie produkt
- co to jest produkt ;
- od czego zależy cena ;
- co musi być wielojęzyczne ;
itp .. itd ..
Oceń wymagania dla systemu.
Inne wymagania są dla wyszukiwarki na stronie internetowej a inne dla backoffice w małej firmie. Na stronie internetowej dostępnej publicznie czasy odpowiedzi "muszą" być dużo poniżej sekundy w przypadku backoffice czasy odpowiedzi około 3 sekund mogą nie stanowić problemu przy korzystaniu z systemu.
Przy ilościach o których piszesz być może optymalne będzie założyć więcej tabel wyspecjalizowanych do poszczególnych zadań stawianych przez warunki wyszukiwania.